1

我有一个 SQL 选择语句:

select pk from items

它返回:

1
2
4
29
8
987654
12313232

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

000001
000002
000004
000029
000008
987654
12313232

他绝对希望输出至少为六位数(我认为这是胡说八道)。

我试过做类似的事情'00000' + convert(nvarchar(6),pk),只有当pk它只是一个数字时才可以。你知道怎么做吗?我应该使用条件语句吗?

4

1 回答 1

4

通常这个

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
于 2011-08-01T08:01:53.237 回答