Мне нужно конвертировать
1 12 145
к (где я использую S для пробела)
SSSS1 SSS12 SS145
Если я использую CAST (VALUE as CHAR(5)), я получаю
CAST (VALUE as CHAR(5))
1SSSS 12SSS 145SS
Как это сделать?
SELECT STR(N,5) FROM (VALUES (1),(12),(145)) T(N)
Возвращает
----- 1 12 145
Вы можете найти свой ответ здесь:
Заполнение SQL
в частности:
SELECT RIGHT ('000000'+ CAST (@Number AS varchar), 6)
declare @T table(Value int) insert into @T values (1),(12),(145) select right(stuff(Value, 1, 0, space(5)), 5) from @T
RIGHT(' ' + CAST (VALUE as VARCHAR(5)), 5)
В целом:
DECLARE @PadTo tinyint; SET @PadTo = 5; SELECT RIGHT(REPLICATE(' ', @PadTo) + CAST(VALUE as VARCHAR(255)), @PadTo) ...