在本教學中,您將學習如何使用Oracle MINUS運算符從一個結果集中減去另一個結果集。
Oracle MINUS操作符簡介
Oracle MINUS運算符比較兩個查詢,並返回第一個查詢中但不是第二個查詢輸出的行。 換句話說,MINUS運算符從一個結果集中減去另一個結果集。
以下說明Oracle MINUS運算符的語法:
SELECT
column_list_1
FROM
T1
MINUS
SELECT
column_list_2
FROM
T2;
與UNION和INTERSECT操作符類似,上面的查詢必須符合以下規則:
- 列數和它們的順序必須匹配一致。
- 相應列的數據類型必須處於相同的數據類型組中,例如數字或字元。
假設第一個查詢T1表返回包含1,2和3的結果集。第二個查詢T2表返回包含2,3和4的結果集。
下圖說明瞭T1和T2的MINUS運算結果:

Oracle MINUS示例
請參閱示例資料庫中的以下contacts和employees表的ER圖結構:

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

請參閱以下 products 和 inventories表的定義:

以下語句從products表中返回產品ID的列表,但不存在於inventories表中:
SELECT
product_id
FROM
products
MINUS
SELECT
product_id
FROM
inventories;
執行上面查詢語句,得到以下結果 -

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