TSQL/MSSQL Select - 0填充整数



我有一个SQL select语句:

select pk from items

它返回:

1
2
4
29
8
987654
12313232

现在我的老板想要这样的东西:

000001
000002
000004
000029
000008
987654
12313232

他肯定希望输出最小为6位(我认为这是无稽之谈)。

我试过做像'00000' + convert(nvarchar(6),pk)这样的事情,只有当pk只是一个数字时才能正常工作。你知道该怎么做吗?我应该使用条件语句吗?

通常情况下

RIGHT ('000000' + CONVERT(varchar(6), pk), 6)

但是当你的值超过6位时,试试这个

LTRIM(RIGHT ('    000000' + CONVERT(varchar(10), pk), 10))
罢工

但是你需要一个CASE来处理7-9位长的数字:

CASE
    WHEN pk >= 1000000 THEN CONVERT(varchar(10), pk)
    ELSE RIGHT ('000000' + CONVERT(varchar(6), pk), 6)
END

最新更新