Oracle Minus運算子


在本教學中,您將學習如何使用Oracle MINUS運算子從一個結果集中減去另一個結果集。

Oracle MINUS操作符簡介

Oracle MINUS運算子比較兩個查詢,並返回第一個查詢中但不是第二個查詢輸出的行。 換句話說,MINUS運算子從一個結果集中減去另一個結果集。

以下說明Oracle MINUS運算子的語法:

SELECT
    column_list_1
FROM
    T1
MINUS 
SELECT
    column_list_2
FROM
    T2;

UNIONINTERSECT操作符類似,上面的查詢必須符合以下規則:

  • 列數和它們的順序必須匹配一致。
  • 相應列的資料型別必須處於相同的資料型別組中,例如數位或字元。

假設第一個查詢T1表返回包含1,23的結果集。第二個查詢T2表返回包含2,34的結果集。

下圖說明了T1T2MINUS運算結果:

Oracle MINUS範例

請參閱範例資料庫中的以下contactsemployees表的ER圖結構:

以下語句從查詢中返回不同的姓氏(last_name),MINUS運算子去除那些在右側查詢結果中行記錄。

請參閱以下 productsinventories表的定義:

以下語句從products表中返回產品ID的列表,但不存在於inventories表中:

SELECT
  product_id
FROM
  products
MINUS
SELECT
  product_id
FROM
  inventories;

執行上面查詢語句,得到以下結果 -

在本教學中,您已學習如何使用Oracle MINUS運算子來比較兩個查詢,並返回第一個查詢中不同於第二個查詢輸出的行。