メインコンテンツまでスキップ
メインコンテンツまでスキップ

UNION句

UNIONを使用する際は、明示的にUNION ALLまたはUNION DISTINCTを指定できます。

ALLまたはDISTINCTを指定しない場合、union_default_modeの設定に依存します。UNION ALLUNION DISTINCTの違いは、UNION DISTINCTが結合結果に対して一意の変換を行う点です。これは、UNION ALLを含むサブクエリからのSELECT DISTINCTと等価です。

UNIONを使用して、任意の数のSELECTクエリを結果に拡張することで結合できます。例:

結果のカラムは、そのインデックス(SELECT内の順序)で一致します。カラム名が一致しない場合、最終結果の名前は最初のクエリから取られます。

結合のために型変換が行われます。たとえば、結合される2つのクエリが互換性のある型のNullableでないフィールドとNullable型を持っている場合、結果のUNIONNullable型のフィールドを持ちます。

UNIONの一部であるクエリは、丸括弧で囲むことができます。ORDER BYLIMITは、最終結果ではなく、個別のクエリに適用されます。最終結果に変換を適用する必要がある場合は、FROM句のサブクエリにUNIONを持つすべてのクエリを置くことができます。

UNIONを使用してUNION ALLまたはUNION DISTINCTを明示的に指定しない場合、union_default_mode設定を使用して結合モードを指定できます。設定値はALLDISTINCT、または空の文字列です。ただし、union_default_mode設定を空の文字列で使用する場合、例外がスローされます。以下の例では、異なる設定値のクエリの結果を示しています。

クエリ:

結果:

クエリ:

結果:

UNION/UNION ALL/UNION DISTINCTの一部であるクエリは同時に実行でき、その結果は混ぜ合わせることができます。

関連情報