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。 |
両方が数値型 (たとえば、smallint、int、float、money など) の場合。 | 2 つの列のうち、有効桁数が大きい方のデータ型。たとえば、テーブル A の ith 列が int で、テーブル B の ith 列が float の場合、float の方が int よりも有効桁数が大きいため、結果テーブルの ith 列のデータ型は float になります。 |
両方の列で NOT NULL が指定されている場合。 | NOT NULL が指定されます。 |
UNION
複数の結果セットを結合し、1 つの結果セットとして返すことを指定します。
ALL
重複した行も含め、すべての行を結果に取り込みます。指定しない場合、重複する行は削除されます。