我有一个要求,我需要将一长串文本(用逗号分隔)转换为多行结果集。
然后,这将用于与其他表格的外部联接。
问题字符串(不在表格中,而是excel表格中的外部字符串):
'A', 'B', 'C', ....
查询的预期输出
Output
-----
'A'
'B'
'C'
我试图避免在实现上述解决方案时使用临时表。
请建议是否有可能。
答案 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'