SQL - 组合2个字符串列表

时间:2017-03-13 13:05:27

标签: sql sql-server-2008

我有这样的事情:

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循环解析它们。我想知道,也许有比这更优雅的东西?

1 个答案:

答案 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

拆分字符串参考: