sql - 如何在 SQL Server 2005 数据库中使用 T-SQL 用零填充 NVARCHAR 字段?

标签 sql tsql dynamics-crm dynamics-crm-4

我有一个订单表,将订单号存储为 NVarChar。我们通过按降序查询最大订单号并返回前 1 名然后加 1 来手动增加订单号。我们在 Microsoft CRM 4.0 中实现了这一点。

例如订单号 (NVarchar)

99
456
32

当我查询上述值时,它返回 99 而不是 456。我想使用 SQL Server 2005 中的 sql 脚本将所有当前订单号填充为类似 000099 或 000456 的内容。所以上面的示例将是

000099
000456
000032

我必须编写什么 SQL 脚本才能完成此操作?

最佳答案

这是关于 LessThanDot 的一个很棒的填充教程。

DECLARE @Numbers TABLE
(Num INT) 

INSERT @Numbers VALUES('1')
INSERT @Numbers VALUES('12')
INSERT @Numbers VALUES('123')
INSERT @Numbers VALUES('1234')
INSERT @Numbers VALUES('12345')
INSERT @Numbers VALUES('123456')
INSERT @Numbers VALUES('1234567')
INSERT @Numbers VALUES('12345678')   

SELECT RIGHT(REPLICATE('0', 8) + CONVERT(NVARCHAR(8),Num),8) FROM @Numbers

这将导致:

00000001
00000012
00000123
00001234
00012345
00123456
01234567
12345678

关于sql - 如何在 SQL Server 2005 数据库中使用 T-SQL 用零填充 NVARCHAR 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1111326/

相关文章:

mysql - SQL:如何从 'tableA pointing to tableB'更新到 'tableA poiting to tableC pointing to tableB'而不丢失现有元素关系?

php - 删除 MySQL 表中的最后一行

sql - 为另一个表中的每个 ID 从表中选择前 1 个

javascript - CRM Javascript 检查无效的电子邮件格式并输入一封电子邮件

javascript - XRM JavaScript : Enable/and Disable user

sql - Oracle 设置一个未使用的列,然后创建一个同名的新列

MySQL触发器自动递增

sql-server - 审计触发器中的当前事务 ID

sql - 将字符串转换为日期和时间

reporting-services - 如何在 FetchXML 中使条件可选