Целое число Формата T-SQL к 2-разрядной строке

Я не могу найти простой способ сделать это в T-SQL.

У меня есть, например, столбец (SortExport_CSV), который возвращает целое число '2' до 90. Если сохраненное число является единственной цифрой, мне нужно оно для преобразования в 2 строки цифр, которые начинаются с 0. Я попытался использовать БРОСОК, но я застреваю о том, как отобразить стиль в предпочтительном формате (0#)

Конечно, легко сделать это на фронтэнде (SSRS, MSAccess, Excel, и т.д.), но в этом экземпляре я не имею никакого фронтэнда и должен предоставить необработанный набор данных уже отформатированные 2 строки цифр.

32
задан Joel Coehoorn 16 December 2009 в 14:39
поделиться

8 ответов

попробуйте

right('0' + convert(varchar(2), @number),2)
0
ответ дан 27 November 2019 в 19:49
поделиться
select right ('00'+ltrim(str( <number> )),2 )
52
ответ дан 27 November 2019 в 19:49
поделиться

здесь

select RIGHT(REPLICATE('0', 2) + CAST(2 AS VARCHAR(2)), 2)

должен вернуть 02

0
ответ дан 27 November 2019 в 19:49
поделиться

Попробуйте это

- Сгенерировать число от 2 до 90

;with numcte as(
select 2 as rn
union all
select rn+1 from numcte where rn<90)

- Программа, которая форматирует число на основе длины

select case when LEN(rn) = 1 then '00'+CAST(rn as varchar(10)) else CAST(rn as varchar(10)) end number
from numcte

Частичный вывод:

number    
002
003
004
005
006
007
008
009
10
11
12
13
14
15
16
17
18
19
20
1
ответ дан 27 November 2019 в 19:49
поделиться

Другой пример:

select 
case when teamId < 10 then '0' + cast(teamId as char(1)) 
else cast(teamId as char(2)) end      
as 'pretty id',
* from team
1
ответ дан 27 November 2019 в 19:49
поделиться

Вот крошечная функция, которая оставила значение поля с заданным символом заполнения Вы можете указать, сколько символов должно быть дополнено слева ..

   Create    function fsPadLeft(@var varchar(200),@padChar char(1)='0',@len int)
      returns varchar(300)
    as
    Begin
      return replicate(@PadChar,@len-Len(@var))+@var
    end

Для вызова:

declare @value int; set @value =2
select dbo.fsPadLeft(@value,'0',2)
1
ответ дан 27 November 2019 в 19:49
поделиться

Преобразуйте значение в строку, добавьте перед ним ноль (так, чтобы это было два или древовидных символа), и получите последнее значение в символы:

right('0'+convert(varchar(2),Sort_Export_CSV),2)
5
ответ дан 27 November 2019 в 19:49
поделиться
SELECT RIGHT('0' + CAST(sortexport_csv AS VARCHAR), 2)
FROM your_table
18
ответ дан 27 November 2019 в 19:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: