我有这样的事情:
DECLARE @a VARSCHAR(100); SET @a = 'a,b,c,d,e'
DECLARE @b VARSCHAR(100); SET @b = '1,2,3,4,5'
我需要这样的东西:
@c = 'a1,b2,c3,d4,e5'
a 和 b 的长度始终相同。
我正在考虑用逗号分割成临时表,然后用do while循环解析它们。我想知道,也许有比这更优雅的东西?
答案 0 :(得分:2)
使用Jeff Moden的stuff()
with select ... for xml path ('')
method of string concatenation和CSV Splitter表值函数,我们可以像这样分割,连接和连接:
select stuff((
select ','+a.Item+b.Item
from [dbo].[delimitedsplit8K](@a,',') a
inner join dbo.[delimitedsplit8K](@b,',') b
on a.ItemNumber = b.ItemNumber
for xml path (''), type).value('.','nvarchar(max)')
,1,1,'')
rextester演示:http://rextester.com/EAAMHG75908
返回:a1,b2,c3,d4,e5
拆分字符串参考: