UNION 句
UNION
を使用する際、明示的に UNION ALL
または UNION DISTINCT
を指定できます。
ALL
または DISTINCT
を指定しない場合、union_default_mode
設定に依存します。 UNION ALL
と UNION DISTINCT
の違いは、UNION DISTINCT
が結合結果に対して一意な変換を行うことであり、これは UNION ALL
を含むサブクエリからの SELECT DISTINCT
と同等です。
任意の数の SELECT
クエリを結合するために UNION
を使用できます。例:
結果のカラムは、そのインデックス(SELECT
内の順序)によって一致します。カラム名が一致しない場合、最終結果の名前は最初のクエリから取得されます。
クラスタリングに対して型変換が行われます。たとえば、結合する二つのクエリが互換性のある型の非 Nullable
及び Nullable
タイプを持つ同じフィールドを持つ場合、結果の UNION
は Nullable
タイプのフィールドになります。
UNION
の一部であるクエリは丸括弧で囲むことができます。ORDER BY と LIMIT は個別のクエリに適用され、最終結果には適用されません。最終結果に変換を適用する必要がある場合は、すべてのクエリを UNION
でサブクエリに入れ、FROM 句内に配置できます。
UNION
を使用して明示的に UNION ALL
または UNION DISTINCT
を指定しなかった場合、union_default_mode 設定を使用して結合モードを指定できます。設定値は ALL
、DISTINCT
、または空文字列を指定できます。ただし、union_default_mode
設定が空文字列で UNION
を使用すると例外がスローされます。次の例は、異なる値の設定に対するクエリの結果を示します。
クエリ:
結果:
クエリ:
結果:
UNION/UNION ALL/UNION DISTINCT
の一部であるクエリは同時に実行でき、それらの結果を混ぜ合わせることができます。
関連情報