字符串成单列

时间:2014-12-02 17:34:11

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

我有逗号分隔的字符串,如下所示转换为列。

示例

给定字符串:

DECLARE @STR VARCHAR(MAX) = 'ABC,DEF,GHI,JKL,MNO'

必须转换为单列:

columnName
-----------
ABC
DEF
GHI
JKL
MNO

1 个答案:

答案 0 :(得分:2)

试试这个。 使用LTRIMRTRIM函数删除前导和尾随空格。

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