2014-12-02 144 views
1

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

给定的字符串:

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

必须转换成单柱:

columnName 
----------- 
ABC 
DEF 
GHI 
JKL 
MNO 
+0

约*分裂*字符串很多的DUP; [Tsql拆分字符串](http://stackoverflow.com/questions/10914576/tsql-split-string) – 2014-12-02 17:35:59

回答

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) 

OUTPUT:

Split_Data 
---------- 
ABC 
DEF 
GHI 
JKL 
MNO 
+0

太棒了!非常感谢。在5分钟内接受这个。 – MAK 2014-12-02 17:44:02