例: 左側の外部結合の使い方 - Teradata Database - Teradata Vantage NewSQL Engine - 例: 左側の外部結合の使い方、CREATE REPLACE RECURSIVE VIEW文

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/wkf1512081455740.ditamap
dita:ditavalPath
ja-JP/wkf1512081455740.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

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

    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);

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