共通表式を使用した再帰的 SQL の作成

再帰を使用する照会は、部品表アプリケーション、ネットワーク計画アプリケーション、 および予約システムのようなアプリケーションでは役立ちます。

このタスクについて

共通表式を使用して、再帰的 SQL を作成できます。 共通表式の全選択が FROM 文節でそれ自体への参照を含む場合、その共通表式は再帰的共通表式 です。

再帰的共通表式は、以下の規則に従っていなければなりません。
  • 最初の和集合 (初期化全選択) の最初の全選択は、共通表式への参照を含んではなりません。
  • 再帰サイクルの一部であるそれぞれの全選択は、以下を満たす必要があります。
    • SELECT または SELECT ALL で始まる。 SELECT DISTINCT は使用できません。
    • その FROM 文節の再帰サイクルの一部である 共通表式への参照を 1 つだけ組み込んでいる。
    • 集約関数、GROUP BY 文節、または HAVING 文節を含まない。
  • 列名は、 共通表式の表名の後に指定する必要がある。
  • 共通表式の各列のデータ・タイプ、長さ、および CCSID は、反復全選択の対応する各列のデータ・タイプ、長さ、および CCSID と一致している必要があります。
  • UNION キーワードを使用する場合は、UNION の代わりに UNION ALL を指定します。
  • INTERSECT または EXCEPT を指定することはできません。
  • 外部結合は、任意の再帰サイクルの一部であってはなりません。
  • 副照会は、任意の再帰サイクルの一部であってはなりません。
重要: 再帰的な共通テーブル式を使用する際には、無限ループを回避するよう注意が必要です。 Db2 再帰的共通テーブル式の反復フルセレクトで、以下の項目が見つからない場合、警告を発します
  • 定数で増分する整数列
  • WHERE 節の述語が counter_column < constant の形式の場合、または counter_column < :host variable

再帰共通テーブル式の使用例については、「再帰共通テーブル式の使用例」を参照してください。