Преобразовать 9-значный канадский SIN в 11-значный SIN (с добавлением пробелов) в SQL Server - PullRequest
0 голосов
/ 31 августа 2018

Я импортирую данные, содержащие канадский грех в 9-значной строке, и мне нужно преобразовать их в 11-значный грех (добавляя пробелы каждые три символа).

Таким образом, исходное значение 123456789 становится 123 456 789. Грех из 11 цифр - так выглядит остальная часть базы данных по Греху.

Попытка найти процедуру T-SQL для преобразования из 9 в 11.

Ответы [ 3 ]

0 голосов
/ 31 августа 2018

Другой способ будет STUFF

select stuff(stuff(123456789,4,0,' ' ),8,0,' ' )

Итак ...

select stuff(stuff([Sin],4,0,' ' ),8,0,' ' )
0 голосов
/ 31 августа 2018

Вы можете использовать формат () функция:

select format(123456789, '000 000 000')

Однако для более старой версии stuff() поможет:

select stuff(stuff(123456789, 4, 0, ' '), 8, 0, ' ')
0 голосов
/ 31 августа 2018

Мне удалось взломать это вместе:

[Sin] = concat(LEFT([Sin],3), ' ', SUBSTRING([Sin], 4, 3), ' ',SUBSTRING([Sin], 7, 3))

сейчас 123456789 становится 123 456 789

PS: я всегда проверяю, что [Sin] действительны при импорте или вводе (код)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...