1

SQL select ステートメントがあります。

select pk from items

戻ります:

1
2
4
29
8
987654
12313232

今、私の上司は次のようなものを望んでいます:

000001
000002
000004
000029
000008
987654
12313232

彼は間違いなく、出力が最低でも 6 桁であることを望んでいます (これはナンセンスだと思います)。

が1桁'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))

ただし、7 ~ 9 桁の数字を扱うには CASE が必要です。

CASE
    WHEN pk >= 1000000 THEN CONVERT(varchar(10), pk)
    ELSE RIGHT ('000000' + CONVERT(varchar(6), pk), 6)
END
于 2011-08-01T08:01:53.237 に答える