使用SQL Server将逗号分隔文本转换为多列结果

时间:2017-11-24 04:31:44

标签: sql sql-server database sql-server-2008-r2

我有一个要求,我需要将一长串文本(用逗号分隔)转换为多行结果集。

然后,这将用于与其他表格的外部联接。

问题字符串(不在表格中,而是excel表格中的外部字符串):

'A', 'B', 'C', ....

查询的预期输出

Output
-----
'A'  
'B'  
'C'  

我试图避免在实现上述解决方案时使用临时表。

请建议是否有可能。

1 个答案:

答案 0 :(得分:2)

尝试一些可以帮助您的xml节点方法

DECLARE @CommValues NVARCHAR(MAX) = '''A'', ''B'', ''C'''


SELECT 
      LTRIM(A.value('.', 'NVARCHAR(MAX)')) [Comma Values] FROM 
(
    SELECT CAST('<X>'+REPLACE(@CommValues, ',', '</X><X>')+'</X>' AS XML) AS Comm
) X CROSS APPLY Comm.nodes('/X') as comm(a)

结果:

Comma Values
'A'
'B'
'C'