我有逗号分隔的字符串,如下所示转换为列。
示例:
给定字符串:
DECLARE @STR VARCHAR(MAX) = 'ABC,DEF,GHI,JKL,MNO'
必须转换为单列:
columnName
-----------
ABC
DEF
GHI
JKL
MNO
答案 0 :(得分:2)
试试这个。
使用LTRIM
和RTRIM
函数删除前导和尾随空格。
DECLARE @STR VARCHAR(MAX) = 'ABC,DEF,GHI,JKL,MNO'
SELECT Rtrim(Ltrim(Split.a.value('.', 'VARCHAR(100)'))) Split_Data
FROM (SELECT Cast ('<M>' + Replace(@STR, ',', '</M><M>') + '</M>' AS XML) AS Data) AS A
CROSS APPLY Data.nodes ('/M') AS Split(a)
输出:
Split_Data
----------
ABC
DEF
GHI
JKL
MNO