dpp*_*dpp 2 sql select zerofill
我有一个 SQL 选择语句:
select pk from items
Run Code Online (Sandbox Code Playgroud)
它返回:
1
2
4
29
8
987654
12313232
Run Code Online (Sandbox Code Playgroud)
现在我的老板想要这样的东西:
000001
000002
000004
000029
000008
987654
12313232
Run Code Online (Sandbox Code Playgroud)
他肯定希望输出至少为六位数(我认为这是无稽之谈)。
我尝试过做类似的事情,只有当只有一位数字时才'00000' + convert(nvarchar(6),pk)可以正常工作。pk您知道如何做到这一点吗?我应该使用条件语句吗?
通常这个
RIGHT ('000000' + CONVERT(varchar(6), pk), 6)
Run Code Online (Sandbox Code Playgroud)
但由于您的值超过 6 位,请尝试此操作
LTRIM(RIGHT (' 000000' + CONVERT(varchar(10), pk), 10))
Run Code Online (Sandbox Code Playgroud)
但是你需要一个 CASE 来处理 7-9 位长的数字:。
CASE
WHEN pk >= 1000000 THEN CONVERT(varchar(10), pk)
ELSE RIGHT ('000000' + CONVERT(varchar(6), pk), 6)
END
Run Code Online (Sandbox Code Playgroud)