TSQL / MSSQL Select - целое число, равное нулю - PullRequest
1 голос
/ 01 августа 2011

У меня есть оператор выбора 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 это всего одна цифра. У вас есть идеи, как это сделать? Должен ли я использовать условное утверждение?

1 Ответ

3 голосов
/ 01 августа 2011

Обычно это

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
...