晚安,伙计们。 问题非常明确:我需要在字符串中间添加2个特定字符。
示例:
(现在的方式)
ID
12345678
23456789
34567891
45678912
(我需要的方式)
ID
12-34567-8
23-45678-9
34-56789-1
45-67891-2
我尝试使用STUFF
和CONCAT
,但没有骰子。
答案 0 :(得分:4)
如果2012 +
,您可以使用STUFF甚至格式()以下假设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
答案 1 :(得分:0)
@John Cappeletti感谢您的回答!我无法解释原因,但似乎我的SSMS(SQL Server 2008 R2)不喜欢按顺序执行2个STUFF。把它们分成2个句子,然后......解决了!
对于在我提问时造成的任何不便,我们深表歉意。