例: 相互再帰 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/ncd1596241368722.ditamap
dita:ditavalPath
ja-JP/ncd1596241368722.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

この例は相互再帰処理を示していますが、これは再帰的ビュー定義ではサポートされていません。

相互再帰処理は次の両方が当てはまるときに生じます。

  • 再帰的ビューAが直接的または間接的に再帰的ビューBを呼び出す。
  • 再帰的ビューBが直接的または間接的に再帰的ビューAを呼び出す。

ここで示されている2つの相互再帰的ビュー定義では、oddという名前のビューがevenという名前のビューを参照し、その逆の参照も行なわれています。

    CREATE RECURSIVE VIEW even (n) AS (
      SELECT * 
      FROM (SELECT 0) AS a(i)
    UNION ALL
      SELECT m + 1
      FROM odd);
    CREATE RECURSIVE VIEW odd (m) AS (
      SELECT *
      FROM (SELECT 1) AS a(i)
    UNION ALL
      SELECT n + 1
      FROM even);