Oracle Intersect運算符

在本教學中,您將學習如何使用Oracle INTERSECT運算符來比較兩個查詢,並返回由兩者相交的行。

Oracle INTERSECT運算符介紹

Oracle INTERSECT運算符比較兩個查詢的結果,並返回兩個查詢輸出的不同行。

以下語句顯示了INTERSECT運算符的語法:

SELECT
    column_list_1
FROM
    T1
INTERSECT
SELECT
    column_list_2
FROM
    T2;

UNION運算符相似,使用INTERSECT運算符時必須遵循以下規則:

  • 兩個查詢中列的數量和順序必須相同。
  • 相應列的數據類型必須處於相同的數據類型組中,例如數字或字元。

Oracle INTERSECT說明圖

假設有兩個查詢返回T1T2表中的結果集。

  • T1結果集包括:123行。
  • T2結果集包括:2,3,4行。

T1T2的相交結果返回是23。因為這些是由兩個查詢輸出的不同值。

下圖說明瞭T1T2的交集:

上圖顯示了INTERSECT返回兩個圓(或集合)的交集。

Oracle INTERSECT示例

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

以下語句使用INTERSECT運算符來獲取在contactsemployees表中都存在人員的姓氏(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運算符