17.05 - 例: 左側の外部結合の使い方 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-175K-JPN
Language
日本語 (日本)

最初の再帰的ビュー定義は、左外部結合の正しい使い方を示しており、その部分は太字で強調されています。この使い方が有効なのは、ビュー定義の繰り返し文の再帰的関係が左側の外部結合の外部関係として使用されているからです。

    CREATE RECURSIVE VIEW rec (f1, mycount) AS (
      SELECT a1, 0 AS mycount
      FROM nonrec
    UNION ALL
      SELECT a2, mycount + 1
      FROM  rec LEFT OUTER JOIN nonrec ON nonrec.a1 = rec.f1 
      WHERE rec.mycount <= 100);

2番目の再帰的ビュー定義は、左外部結合の無効な使い方を示しており、その部分は太字で強調されています。この使い方が無効なのは、ビュー定義の繰り返し文の再帰的関係が左側の外部結合の内部関係として使用されているからです。

    CREATE RECURSIVE VIEW rec (f1, mycount) AS (
      SELECT a1, 0 AS mycount
      FROM nonrec
    UNION ALL
      SELECT a2, mycount + 1
      FROM  nonrec LEFT OUTER JOIN rec ON nonrec.a1 = rec.f1 
      WHERE rec.mycount <= 100);

左外部結合は、再帰的ビュー定義のシード文内で制約なしで使用できます。