17.05 - 例: ON、WHEN MATCHED、WHEN NOT MATCHED句内のソースまたはターゲットの参照 - 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-1146-175K-JPN
Language
日本語 (日本)

次の例は、ON、WHEN MATCHED、またはWHEN NOT MATCHED句でソース テーブルとターゲット テーブル以外のテーブルを参照しているので、失敗します。

次の例は、テーブルt4は、派生ソース テーブルsでもターゲット テーブルt1でもないので、失敗します。

     MERGE INTO t1
       USING (SELECT x2,y2, z3
              FROM t2, t3
              WHERE y2=10) AS s
       ON x1=y2 AND t4.x4=z2
     WHEN MATCHED THEN
       UPDATE SET z1=10
     WHEN NOT MATCHED THEN
       SELECT (y2, z2, x2);

次の例は、テーブルt3は、派生ソース テーブルsでもターゲット テーブルt1でもないので、失敗します。USINGのソース テーブル サブクエリーにt3が指定されていますが、ON句ではソース テーブルとターゲット テーブルだけを参照できるという制限に違反しています。

     MERGE INTO t1
       USING (SELECT x2,y2, z3
              FROM t2, t3
              WHERE y2=10) AS s
       ON x1=y2 AND t3.x4=z2
     WHEN MATCHED THEN
       UPDATE SET z1=10
     WHEN NOT MATCHED THEN
       INSERT (y2, z2, x2);