Как мне вернуть 2-х значное представление числа в SQL 2000 - PullRequest
1 голос
/ 04 октября 2008

У меня есть таблица на SQL2000 с числовым столбцом, и мне нужно выбрать, чтобы вернуть 01, 02, 03 ...

В настоящее время возвращает 1,2,3, ... 10,11 ...

Спасибо.

Ответы [ 4 ]

7 голосов
/ 04 октября 2008

Это работает?

SELECT REPLACE(STR(mycolumn, 2), ' ', '0')

С http://foxtricks.blogspot.com/2007/07/zero-padding-numeric-value-in-transact.html

1 голос
/ 14 ноября 2008

Этот вопрос касается интерфейса с базой данных. Действительно, база данных должна возвращать данные, и ваше приложение может переформатировать их, если оно хочет данные в определенном формате. Вы не должны делать это в базе данных, но на уровне представления.

0 голосов
/ 04 октября 2008

где n - положительное целое число от 0 до 99:

select right('0'+ltrim(str(n)),2)

или

select right(str(100+n),2)

но мне больше всего нравится ответ Джона. Единственная точка спецификации для целевой ширины, но я опубликовал их, потому что они также являются общими идиомами, которые могут работать лучше в других ситуациях или языках.

0 голосов
/ 04 октября 2008

Ответ Джона работает и обобщается на любое количество цифр, но мне было бы удобнее с

select case when mycolumn between -9 and 9 then '0' + str(mycolumn) else str(mycolumn) end 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...