2017-03-11 1 views
1

이 이상한 시나리오에 대해 도움을 주시기 바랍니다. 나는 아래와 같은 데이터를 가지고있다.동적 쉼표 다른 열로 구분 된 문자열

DECLARE @TABLE TABLE 
     (
     ID INT, 
     PHONE001 VARCHAR(500) 
     ) 
     INSERT TEST 
     SELECT 1,'01323840261,01323844711' UNION ALL 
     SELECT 2,'' UNION ALL 
     SELECT 3,',01476862000' UNION ALL 
     SELECT 4,',1223822583,125985' UNION ALL 
     SELECT 5,'2089840022,9.99021E+13' 

저는 각 쉼표 값에 대해 별도의 열을 넣으려고합니다. 최대 열 수는 쉼표로 구분 된 최대 문자열에 따라 다릅니다.

예상 출력

1|01323840261|01323844711|'' 
2|''|''|'' 
3|01476862000|''|''| 
4||1223822583|125985| 
5|2089840022|9.99021E+13|''| 
+0

귀하의 질문에 정말 명확하지 않다보십시오. 또한 게시 된 코드와 질문은 거의 의미가 없습니다. 당신이하려는 일을 더 명확히해라. – Rahul

답변

1

select id,T.c.value('t[1]','varchar(50)') as col1, 
    T.c.value('t[2]','varchar(50)') as col2 , 
    T.c.value('t[3]','varchar(50)') as col3 from 
    (select id,cast ('<t>'+ replace(PHONE001,',','</t><t>') +'</t>' 
     as xml) x 
     from @TABLE) a cross apply x.nodes('.') t(c) 
관련 문제