Как получить значение с лидирующими нулями - PullRequest
0 голосов
/ 07 декабря 2011

Table1

ID (NVarchar Column)

01 
02
03
...

Запрос

Select max(id) from table1

Ouput is

3

Я хочу получить максимальный идентификатор с нулем в начале, если это означает 002, запрос должен вернуть 002

Ожидаемый результат -

03

Как это сделать

Нужна помощь по запросу

Ответы [ 3 ]

3 голосов
/ 07 декабря 2011

Я выполнил следующий фрагмент кода:

 DECLARE @TABLE TABLE (
            ID nvarchar(10)
            )

 INSERT @TABLE VALUES ( '003' )
 INSERT @TABLE VALUES ( '004' )

 SELECT MAX (ID)

 FROM @TABLE

Вывод был

  004

При использовании типа данных как int, однако:

DECLARE @TABLE TABLE (
            ID int
            )

INSERT @TABLE  values ( '003' )
INSERT @TABLE VALUES ( '004')

SELECT MAX (ID )

FROM @TABLE

Вывод был:

4

Я бы проверил, правильно ли определены ваши типы данных.

1 голос
/ 07 декабря 2011

Чтобы получить идею: Select right('000' + max(id),2) from table1

0 голосов
/ 07 декабря 2011

Вы можете написать запрос следующим образом:

declare @input int, @len int
set @len = 2
select right(REPLICATE('0',@len)+convert(varchar(5),2),@len ) AS LPAD

Я предполагаю, что вы все время знаете длину.Вы также можете сделать это UDF.

...