2017-11-29 9 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 

現在、私はこのテーブルをループするカーソルを使って作業を行いました。 別のテーブルに挿入...

これはカーソルなしでも可能でしょうか? 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

関連する問題