Как преобразовать целое число в текст, выравнивая текст слева? - PullRequest
3 голосов
/ 17 октября 2011

Мне нужно конвертировать

1
12
145

к (где я использую S для пробела)

SSSS1
SSS12
SS145

Если я использую CAST (VALUE as CHAR(5)), я получаю

1SSSS
12SSS
145SS

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

Ответы [ 4 ]

2 голосов
/ 17 октября 2011
SELECT STR(N,5)
FROM (VALUES (1),(12),(145)) T(N)

Возвращает

-----
    1
   12
  145
2 голосов
/ 17 октября 2011

Вы можете найти свой ответ здесь:

Заполнение SQL

в частности:

SELECT RIGHT ('000000'+ CAST (@Number AS varchar), 6)
2 голосов
/ 17 октября 2011
declare @T table(Value int)

insert into @T values (1),(12),(145)

select right(stuff(Value, 1, 0, space(5)), 5)
from @T
2 голосов
/ 17 октября 2011
RIGHT('     ' + CAST (VALUE as VARCHAR(5)), 5)

В целом:

DECLARE @PadTo tinyint;
SET @PadTo = 5;

SELECT
     RIGHT(REPLICATE(' ', @PadTo) + CAST(VALUE as VARCHAR(255)), @PadTo)
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...