全部產品
Search
文件中心

AnalyticDB:UNION、INTERSECT和EXCEPT

更新時間:Jul 06, 2024

UNIONINTERSECTEXCEPT用於將多個查詢結果集進行組合,從而得到一個最終結果。

文法

query
{ UNION [ ALL ] | INTERSECT | EXCEPT }
query     

參數

  • UNION:返回兩個查詢運算式的集合運算。

  • UNION ALLALL關鍵字用於保留UNION中產生的重複行。

  • INTERSECT:返回只有在兩個集合中同時出現的行,返回結果將刪除兩個集合中的重複行。

  • EXCEPT:先刪除兩個集合中重複的資料行,返回只在第一個集合中出現且不在第二個集合中出現的所有行。

計算順序

  • UNIONEXCEPT集合運算子為左關聯,如果未使用圓括弧來改變計算順序,則按照從左至右的順序進行集合運算。

    例如,以下查詢中,首先計算T1T2UNION,然後對UNION結果執行EXCEPT操作。

    select * from t1
    union
    select * from t2
    except
    select * from t3
    order by c1;                 
  • 在同一查詢中,組合使用集合運算子時,INTERSECT運算子優先於UNIONEXCEPT運算子。

    例如,以下查詢先計算T2T3的交集,然後將計算得到的結果與T1進行並集。

    select * from t1
    union
    select * from t2
    intersect
    select * from t3
    order by c1;                  
  • 可以使用圓括弧改變集合運算子的計算順序。

    以下樣本中,將T1T2的並集結果與T3執行交集運算。

    (select * from t1
    union
    select * from t2)
    intersect
    (select * from t3)
    order by c1;