UNION 演算子

UNION 演算子

複数のクエリの結果を、1 つの結果セットに結合します。すべてのクエリの結果セットに含まれるすべての行は、そのユニオンに含まれます。これは、2 つのテーブルの列を結合した結合列とは異なります。

UNION により 2 つのクエリの結果セットを結合する場合、次のように 2 つの基本的な規則があります。

  • 列の数と順番は、すべてのクエリで同じなければなりません。

  • データ型が一致していなければなりません。
構文

    { < query specification > | ( < query expression > ) }
        UNION [ ALL ]
        < query specification | ( < query expression > )
            [ UNION [ ALL ] < query specification | ( < query expression > )
                [ ...
n ] ]

引数

<query_specification> | (<query_expression>)

データを返すクエリの指定またはクエリ式です。このデータが、別のクエリ指定またはクエリ式から返されるデータと結合されます。UNION 演算の一部である列の定義は同じである必要はありませんが、暗黙の変換により一致させる必要があります。

次の表は、対応する ( ith) 列のデータ型とオプションを比較する際の規則を示します。

ith 列のデータ型 結果テーブルの ith 列のデータ型
データ型が一致しない場合 (Microsoft® SQL Server™ が自動的にデータ型の変換を行わない場合)。 SQL Server からエラーが返されます。
両方が長さ L1、L2 の固定長 char の場合。 L1 または L2 のいずれか大きい方と等しい長さの固定長 char。
両方が長さ L1、L2 の固定長 binary の場合。 L1 または L2 のいずれか大きい方と等しい長さの固定長 binary
いずれかまたは両方が可変長 char の場合。 ith 列に指定した長さの最大値と等しい長さの可変長 char
いずれかまたは両方が可変長 binary の場合。 ith 列に指定した長さの最大値と等しい長さの可変長 binary
両方が数値型 (たとえば、smallintintfloatmoney など) の場合。 2 つの列のうち、有効桁数が大きい方のデータ型。たとえば、テーブル A の ith 列が int で、テーブル B の ith 列が float の場合、float の方が int よりも有効桁数が大きいため、結果テーブルの ith 列のデータ型は float になります。
両方の列で NOT NULL が指定されている場合。 NOT NULL が指定されます。

UNION

複数の結果セットを結合し、1 つの結果セットとして返すことを指定します。

ALL

重複した行も含め、すべての行を結果に取り込みます。指定しない場合、重複する行は削除されます。

表示: