ルールと制限を以下に示します。
- WITH修飾子内の再帰的な名前付きクエリーに表示できる唯一の集合演算子はUNION ALLです。
- WITHまたはWITH RECURSIVE修飾子内で以下の要素を使用することはできません。
- WITHまたはWITH RECURSIVE修飾子
- TOP n演算子
- ユーザー定義関数
- WITH RECURSIVE文修飾子に含まれる再帰文の内部で以下の要素を使用することはできません。
- 論理述部NOT INまたはNOT EXISTS
- 集約関数
- 順序付き分析関数
- GROUP BY句
- HAVING句
- DISTINCT句
- SUBPUERY
- 派生テーブル
- これらのデータベース オブジェクトのいずれかの定義においてWITH修飾子を指定することはできません。
- トリガー
- ストアド プロシージャ
- 再帰文を持たない再帰的な名前付きクエリーは、非再帰的な名前付きクエリーと同じように動作します。
以下のリクエストで生成される結果は、非再帰的な名前付きクエリーをWITH修飾子に指定するリクエストの場合と同じです。
WITH RECURSIVE orderable_items (product_id, quantity) AS ( SELECT stocked.product_id, stocked.quantity FROM stocked, product WHERE stocked.product_id = product.product_id AND product.on_hand > 5) SELECT product_id, quantity FROM orderable_items WHERE quantity < 10;