在SQL Server中将9位数的加拿大SIN转换为11个字符的SIN(添加空格)

时间:2018-08-31 13:48:41

标签: sql sql-server tsql

我正在导入以9位数字的字符串提供加拿大罪恶的数据,我需要将其转换为11位数字的罪恶(每三个字符添加一个空格)。

因此123456789的原始值变为123 456 789。 11位数字的Sin是数据库其余部分按Sin查找人的方式。

试图找到将9转换为11的T-SQL过程。

3 个答案:

答案 0 :(得分:5)

另一种方法是STUFF

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

所以...

select stuff(stuff([Sin],4,0,' ' ),8,0,' ' )

答案 1 :(得分:2)

您可以使用format()函数:

select format(123456789, '000 000 000')

但是,对于较旧的版本stuff()会有所帮助:

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

答案 2 :(得分:1)

我设法一起破解了

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

现在 123456789 变为 123456789

PS:我总是检查[Sin]在导入或输入(代码)时是否有效