在本教學中,您將學習如何使用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
返回兩個圓(或集合)的交集。
請參閱範例資料庫中的以下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
運算子來比較兩個查詢,並返回兩個查詢輸出的不同行。