2013-09-27 3 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보다 많거나 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