UNION
、INTERSECT
、およびEXCEPT
演算子を使用して、複数のクエリ結果セットを1つの結果セットに結合できます。
構文
クエリ
{UNION [すべて] | INTERSECT | 例外}
クエリ
パラメーター
UNION
: 2つの結果セットの和集合を返します。UNION ALL
: 重複行を保持した2つの結果セットの和集合を返します。ALL
キーワードは、UNION
計算後に重複行が保持されることを示します。INTERSECT
: 2つの結果セットの共通部分を返します。EXCEPT
: 最初の結果セットには表示されますが、他の結果セットには表示されない行を返します。
計算シーケンス
UNION
とEXCEPT
演算子は左連想です。 つまり、計算順序を変更するために括弧 () を使用しない場合、計算は左から右に始まります。たとえば、次のステートメントでは、
UNION
演算子はT1
とT2
の和集合を返します。 次に、EXCEPT
演算子は、union
演算子によって返された和集合にのみ表示される行を返しますが、T3は返しません。select * from t1 ユニオン select * from t2 を除く select * from t3 注文によってc1;
- 同じステートメントで、
INTERSECT
演算子はUNION
およびEXCEPT
演算子よりも優先されます。たとえば、次のステートメントでは、
T2
とT3
の交点を見つけ、次に交点とT1
の和集合を見つけます。select * from t1 ユニオン select * from t2 交差 select * from t3 注文によってc1;
- 括弧 () を使用して、これらの演算子の計算順序を変更できます。
たとえば、次のステートメントでは、
T1
とT2
の和集合を見つけ、次に和集合とT3
の交点を見つけます。(t1から * を選択 ユニオン select * from t2) 交差 (t3から * を選択) 注文によってc1;