0

I have a data column with values like this:

table: type

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

What will be the SQL command to split it by "/" ?

Expected output

ID|Description1|Description2|Description3|  
1 |chair       |table       |plates  
2 |chair2      |table2      |plates2   
RBarryYoung
  • 55,398
  • 14
  • 96
  • 137
user2617053
  • 323
  • 3
  • 5
  • 13

1 Answers1

1

Try this

;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

bvr
  • 4,786
  • 1
  • 20
  • 24