2017-11-29 1 views
0

나는 이와 같은 테이블이 있습니다."denormalize"1 csv 열이있는 SQL 행

 Column1        Column2 

    Salade, Tomato,      FOOD 
    Earth, Water, Fire     Element 

나는 이렇게 보입니다.

Column1    Column2 
    Salade     FOOD 
    Tomato     FOOD 
    Earth     Element 
    Water     ELEMENT 

현재이 테이블을 루프하는 커서로 작업 arround를 만들었습니다. 다른 테이블에 삽입 ...

커서없이 삽입 할 수 있습니까? 다른 테이블을 만들지 않고 1 select 문에서.

+0

가 왜 그런 테이블을해야합니까? – gbn

+0

또한 버전, 지금까지 시도한 내용 등은 무엇입니까? – gbn

답변

1

나는 당신의 쉼표로 구분 된 데이터

을 분할 XML 노드 방법을 사용하고자하는
SELECT LTRIM(a.value('.', 'nvarchar(max)')) Column1, Column2 
FROM 
(
    SELECT CAST('<m>'+REPLACE([Column1], ',', '</m><m>')+'</m>' AS XML) AS [Column1], 
      [Column2] FROM <table> 
) m CROSS APPLY Column1.nodes('/m') AS split(a); 

결과 :

Column1 Column2 
Salade FOOD 
Tomato FOOD 
Earth Element 
Water Element 
Fire Element 
+0

매우 복잡합니다. – gbn

관련 문제