ASOF JOIN 構文: キーワードの使用制限(保留中)¶
ASOF JOIN 機能は以下のように動作します。
- 変更前
オブジェクト名やエイリアスとしての ASOF や MATCH_CONDITION の使用は制限されません。
- 変更後
ASOF と MATCH_CONDITION は新しいキーワードです。これらのキーワードの SELECT コマンド構文での使用は制限されています。
オブジェクトの名前
SELECT ステートメントがテーブル、ビュー、インラインビューの名前として ASOF または MATCH_CONDITION を使用する場合、次のように識別する必要があります。
オブジェクトが二重引用符で囲まれた名前で作成された場合は、同じ二重引用符で囲まれた名前を使用する。
オブジェクトが二重引用符なしの名前で作成された場合は、二重引用符と大文字を使用する。
例えば、次のようなステートメントは使用できなくなり、エラーが返されます。
SELECT * FROM asof; WITH match_condition AS (SELECT * FROM T1) SELECT * FROM match_condition;
二重引用符でオブジェクトを作成した場合は、二重引用符を使用して問題を修正する。
SELECT * FROM "asof"; WITH "match_condition" AS (SELECT * FROM T1) SELECT * FROM "match_condition";
二重引用符なしでオブジェクトを作成した場合は、二重引用符と大文字を使用して問題を修正する。
SELECT * FROM "ASOF"; WITH "MATCH_CONDITION" AS (SELECT * FROM T1) SELECT * FROM "MATCH_CONDITION";
注釈
Snowflakeでは、アプリケーションでこれらのオブジェクト名の使用を中止することを推奨しています。
エイリアス名
SELECT ステートメントがエイリアスとして ASOF または MATCH_CONDITION を使用する場合、エイリアスの前に AS を使用するか、エイリアスを二重引用符で囲む必要があります。例えば、次のようなステートメントは使用できなくなり、エラーが返されます。
SELECT * FROM t1 asof; SELECT * FROM t2 match_condition;
次のいずれかの方法で問題を解決します。
SELECT * FROM t1 AS asof; SELECT * FROM t1 "asof"; SELECT * FROM t2 AS match_condition; SELECT * FROM t2 "match_condition";
参照: 1138