SnowConvert AI - ANSI SQL - サブクエリ¶
説明¶
サブクエリは、別のクエリ内のクエリです。FROM 句または WHERE 句のサブクエリは、これを含むクエリが返すデータを制限または比較/評価するために使われるデータを提供するために使用されます。( Snowflakeサブクエリのドキュメント )
サブクエリには、スカラー型/非スカラー型のほか、相関型/無相関型もあります。
相関サブクエリ は、外部クエリの列を参照します。Snowflakeでは、相関サブクエリはクエリ内の各行に対して実行されます。一方、 無相関サブクエリ は外部クエリを参照せず、クエリ全体に対して一度だけ実行されます。
スカラーサブクエリ は結果として単一の値を返します。そうでないサブクエリは 非スカラー です。
以下のパターンは、これらのカテゴリに基づいています。
サンプルソースパターン¶
セットアップデータ¶
Teradata¶
Snowflake¶
非スカラーサブクエリ¶
サブクエリ演算子(ANY/ALL/IN/EXISTS)内で指定された非スカラーサブクエリはサポートされています。
派生テーブルとして使用される非スカラーサブクエリもサポートされています。
Teradata¶
結果¶
Snowflake¶
結果¶
既知の問題¶
1.無相関スカラーではない FETCH firstを含むサブクエリ
Oracleではサブクエリで FETCH 句を使用できますが、Snowflakeではこの句を使用できるのはサブクエリが無相関スカラーの場合のみであり、そうでない場合は例外が発生します。
SnowConvert AI は、サブクエリでの FETCH の使用が無効である場合に SSC-EWI-0108 をマークします。
Oracle:
Snowflake: