2017-10-21 118 views
0

晚安,乡亲们。 问题很明显:我需要在字符串中添加2个特定字符。SQL Server - 如何在字符串中添加一个或多个特定字符?

例子:

(在现在是这样)

ID 

12345678  
23456789  
34567891  
45678912 

我已经STUFFCONCAT,但没有骰子尝试(我需要的方式)

ID 

12-34567-8  
23-45678-9  
34-56789-1  
45-67891-2 

+3

你能告诉我们'STUFF'和'CONCAT'代码吗? – Moseleyi

+0

感谢您的回答。我一直在试图用这样的: DECLARE @String NVARCHAR(30)= '20952634500' SELECT STUFF(STUFF(@字符串,3,0 ' - '),11,1, ' - ') 我的问题是,我有大约300行来编辑/添加这个特殊字符。 是否有“自动”的方式来做到这一点? – tankard

回答

4

您可以使用STUFF甚至格式()如果2012+

以下假设ID是不是INT。

Declare @YourTable Table ([ID] varchar(50)) 
Insert Into @YourTable Values 
(12345678) 
,(23456789) 
,(34567891) 
,(45678912) 

Select * 
     ,ViaFormat = format(cast(ID as int),'00-00000-0') 
     ,ViaStuff = stuff(stuff(ID,8,0,'-'),3,0,'-') 
From @YourTable 

返回

ID   ViaFormat ViaStuff 
12345678 12-34567-8 12-34567-8 
23456789 23-45678-9 23-45678-9 
34567891 34-56789-1 34-56789-1 
45678912 45-67891-2 45-67891-2 
0

@约翰Cappeletti谢谢您的回答!我无法解释为什么,但似乎我的SSMS(SQL Server 2008 R2)不喜欢2个STUFF按顺序执行。只是将它们分成2个句子,瞧...解决了!

对不起,我的问题造成的不便。

相关问题