将格式连接到简单格式

时间:2015-04-05 11:38:38

标签: sql sql-server

我在","分隔的一个单元格中连接了多个数据。分隔器。下面是我需要的数据和输出的屏幕截图。我知道如何使用For XML将输出转换为连接格式,但我无法将concatenate转换为输出格式。

enter image description here

我正在使用Sql server 2008.请帮助完成此任务。

此致 拉坦

1 个答案:

答案 0 :(得分:0)

因为你在两列中都有复合字符串,所以我更喜欢使用交叉连接转换为xml,两次:

  SELECT MemberId = y.i.value('(./text())[1]', 'nvarchar(1000)'),
         TokenId  = u.j.value('(./text())[1]', 'nvarchar(1000)')             
  FROM 
  ( 
    SELECT 
        m = CONVERT(XML, '<i>' 
            + REPLACE(MemberId, ',' , '</i><i>') 
            + '</i>').query('.'),
        t= CONVERT(XML, '<j>' 
            + REPLACE(TokenId, ',' , '</j><j>') 
            + '</j>').query('.')
    FROM member_tokens
  ) AS a 
  CROSS APPLY m.nodes('i') AS y(i)
  CROSS APPLY t.nodes('j') AS u(j)

SQLFIDDLE DEMO