0

我有一个数据列,其值如下:

表:类型

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

用 "/" 分割它的 SQL 命令是什么?

预期产出

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

1 回答 1

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 小提琴演示

于 2013-09-27T04:03:25.787 回答