在本教學中,您將學習如何使用Oracle INTERSECT運算符來比較兩個查詢,並返回由兩者相交的行。
Oracle INTERSECT運算符介紹
Oracle INTERSECT運算符比較兩個查詢的結果,並返回兩個查詢輸出的不同行。
以下語句顯示了INTERSECT運算符的語法:
SELECT
column_list_1
FROM
T1
INTERSECT
SELECT
column_list_2
FROM
T2;
與UNION運算符相似,使用INTERSECT運算符時必須遵循以下規則:
- 兩個查詢中列的數量和順序必須相同。
- 相應列的數據類型必須處於相同的數據類型組中,例如數字或字元。
Oracle INTERSECT說明圖
假設有兩個查詢返回T1和T2表中的結果集。
T1結果集包括:1,2,3行。T2結果集包括:2,3,4行。
T1和T2的相交結果返回是2和3。因為這些是由兩個查詢輸出的不同值。
下圖說明瞭T1和T2的交集:

上圖顯示了INTERSECT返回兩個圓(或集合)的交集。
Oracle INTERSECT示例
請參閱示例資料庫中的以下contacts和employees表的ER結構圖。

以下語句使用INTERSECT運算符來獲取在contacts和employees表中都存在人員的姓氏(last_name):
SELECT
last_name
FROM
contacts
INTERSECT
SELECT
last_name
FROM
employees
ORDER BY
last_name;
執行上面示例代碼,得到以下結果 -

請注意,在最後的查詢中放置了
ORDER BY子句,以對由INTERSECT運算符返回的結果集進行排序。
在本教學中,您學習了如何使用Oracle INTERSECT運算符來比較兩個查詢,並返回兩個查詢輸出的不同行。
上一篇:
Oracle Union運算符
下一篇:
Oracle Minus運算符
