カーソルを使用せずに、次のことを実現するT-SQLコードを考え出そうとしています。
次の表では、
SourceData
これには2つの列が[ColA]
あり[ColB]
、両方ともnvarchar(255)
、次のデータ例があります。
ColA | ColB
==================
AAA | TripleA
TripleA | AAA
AAA | ThreeAs
ThreeAs | AAA
BBB | TripleB
TripleB | BBB
BBB | ThreeBs
ThreeBs | BBB
等。、
行データを2つのテーブルに抽出します。
TableA_Root
、 とTableB_Children
TableA_Root
これらの列はどこにありますか:[ROID identity], [Root]
次の列がありTableB_Children
ます。[COID identity],[fKey_ROID],[Child]
結果のテーブルに次のようなサンプルデータが含まれるようにします。
TableA_Root
==============
1 | AAA
2 | BBB
TableB_Children
===============
1 | 1 | TripleA
2 | 1 | ThreeAs
3 | 2 | TripleB
4 | 2 | ThreeBs
最初はカーソルを使うと思いました。しかし、それは最適なアプローチではないと確信しています。明らかに、これはソートとマージであり、SQLの外部で実行できます。「IN」または「EXISTS」を使用してサブクエリで試したアイデアの一部ですが、私の試みは不十分です。新鮮な視点を使うことができました。