2014-12-02 145 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