UNION、INTERSECT和EXCEPT用於將多個查詢結果集進行組合,從而得到一個最終結果。
文法
query
{ UNION [ ALL ] | INTERSECT | EXCEPT }
query 參數
UNION:返回兩個查詢運算式的集合運算。UNION ALL:ALL關鍵字用於保留UNION中產生的重複行。INTERSECT:返回只有在兩個集合中同時出現的行,返回結果將刪除兩個集合中的重複行。EXCEPT:先刪除兩個集合中重複的資料行,返回只在第一個集合中出現且不在第二個集合中出現的所有行。
計算順序
UNION和EXCEPT集合運算子為左關聯,如果未使用圓括弧來改變計算順序,則按照從左至右的順序進行集合運算。例如,以下查詢中,首先計算
T1和T2的UNION,然後對UNION結果執行EXCEPT操作。select * from t1 union select * from t2 except select * from t3 order by c1;在同一查詢中,組合使用集合運算子時,
INTERSECT運算子優先於UNION和EXCEPT運算子。例如,以下查詢先計算
T2和T3的交集,然後將計算得到的結果與T1進行並集。select * from t1 union select * from t2 intersect select * from t3 order by c1;可以使用圓括弧改變集合運算子的計算順序。
以下樣本中,將
T1和T2的並集結果與T3執行交集運算。(select * from t1 union select * from t2) intersect (select * from t3) order by c1;