2013-09-27 67 views
0

我有这样的与值的数据列:SQL命令通过分割“/”

表:类型

ID|Descriptions 
1 |chair/table/plates/ 
2 |chair2/table2/plates2/ 

会是怎样的SQL命令,由“/”分割呢?

预期输出

ID|Description1|Description2|Description3| 
1 |chair  |table  |plates 
2 |chair2  |table2  |plates2 
+0

将这种描述只有3'/'? – Nisha

+0

3以上有3例或4例 – user2617053

回答

1

试试这个

;WITH Split_Descr ([ID],[Descriptions], xmldescr) 
AS 
(
    SELECT [ID], 
    [Descriptions], 
    CONVERT(XML,'<Descr><desc>' 
    + REPLACE([Descriptions],'/', '</desc><desc>') + '</desc></Descr>') AS xmldescr 
     FROM Table1 
) 

SELECT [ID],  
xmldescr.value('/Descr[1]/desc[1]','varchar(100)') AS Descr1,  
xmldescr.value('/Descr[1]/desc[2]','varchar(100)') AS Descr2, 
xmldescr.value('/Descr[1]/desc[3]','varchar(100)') AS Descr3 
FROM Split_Descr 

SQL FIDDLE DEMO