SQLServer——如何在字符串中间添加1个或更多个特定字符?
晚安,各位。 问题很清楚:我需要在字符串中间添加2个特定字符。 例如: (现在的情况) (我需要的方式)SQLServer——如何在字符串中间添加1个或更多个特定字符?,sql,sql-server,tsql,ssms,Sql,Sql Server,Tsql,Ssms,晚安,各位。 问题很清楚:我需要在字符串中间添加2个特定字符。 例如: (现在的情况) (我需要的方式) 我试过使用STUFF和CONCAT,但没有骰子。如果需要,您可以使用STUFF甚至Format()+ 以下假设ID不是INT 示例 Declare @YourTable Table ([ID] varchar(50)) Insert Into @YourTable Values (12345678) ,(23456789) ,(34567891) ,(45678912) Select
我试过使用
STUFF
和CONCAT
,但没有骰子。如果需要,您可以使用STUFF甚至Format()+
以下假设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
如果需要,您可以使用STUFF甚至Format()+ 以下假设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
@约翰·卡佩莱蒂谢谢你的回答!我无法解释原因,但我的SSM(SQLServer2008R2)似乎不喜欢按顺序执行两件事情。把他们分成两句话,瞧…解决了
很抱歉在回答我的问题时给您带来不便。@John Cappeleti谢谢您的回答!我无法解释原因,但我的SSM(SQLServer2008R2)似乎不喜欢按顺序执行两件事情。把他们分成两句话,瞧…解决了
很抱歉在回答我的问题时给您带来不便。您能给我们看一下
资料
和CONCAT
代码吗?谢谢您的回答。我一直在尝试:DECLARE@String NVARCHAR(30)='20952634500'SELECT STUFF(STUFF(@String,3,0,'-')、11,1,'-'))我的问题是我有大约300行要编辑/添加这个特殊字符。有没有一种“自动”的方法可以做到这一点?你能给我们看一下东西
和CONCAT
代码吗?谢谢你的回答。我一直在尝试:DECLARE@String NVARCHAR(30)='20952634500'SELECT STUFF(STUFF(@String,3,0,'-')、11,1,'-'))我的问题是我有大约300行要编辑/添加这个特殊字符。有没有一种“自动”的方法可以做到这一点?