将字符插入SQL字符串

Dav*_*all 5 sql insert-update

我有一个nvarchar列,我需要在字符串中的固定点插入一个连字符.连字符需要在最右边的字符和下一个字符之间,并且再次在右边的第3个位置,例如:列值是

0000050704 
Run Code Online (Sandbox Code Playgroud)

我需要它

0000050-70-4
Run Code Online (Sandbox Code Playgroud)

或价值是

0555256321 
Run Code Online (Sandbox Code Playgroud)

它应该是

0555256-32-1
Run Code Online (Sandbox Code Playgroud)

看不出这是怎么做的.谁能给我一点帮助?

Jal*_*opa 7

假设字符串可以是可变长度,则需要在表达式中使用REVERSE()或许多令人讨厌的LEN()值.

declare @txt varchar(100) = '0000050704'

--If using SQL Server, the STUFF() function is your friend
select REVERSE(STUFF(STUFF(REVERSE(@txt), 2, 0, '-'), 5, 0, '-'))

--if not you'll need to concatenate SUBSTRING()s
select REVERSE(SUBSTRING(REVERSE(@txt), 1, 1) + '-' + SUBSTRING(REVERSE(@txt),2, 2) + '-' + SUBSTRING(REVERSE(@txt),4, LEN(@txt)))
Run Code Online (Sandbox Code Playgroud)