ロケーションテーブルがあります。このテーブルにツリーとして格納されている各場所。レコードは、他の場所などのサブロケーションにすることができます。
ロケーション テーブルで、次の tsql を実行して、すべてのロケーションとそのサブロケーションを生成します
WITH LocationTree AS (
SELECT L.* FROM Location L
UNION
SELECT L.* FROM LocationTree LT, Location L where L.ParentLocationID = LT.LocationID
)
SELECT * FROM LocationTree
しかし、それは私にエラーを与えます:
Recursive common table expression 'LocationTree' does not contain a top-level UNION ALL operator.
エラーは、 UNIONの代わりにUNION ALLを使用する必要があることを示していますが、UNION ALLは繰り返される行を返します。UNION のみを使用する場合のように、個別の行を選択したい。
SQLのWITHステートメント内でUNIONキーワードを使用するにはどうすればよいですか?