SQL Server Intersect(交集)運算符

在本教學中,將學習如何使用SQL Server INTERSECT運算符組合兩個輸入查詢的結果集,並返回兩個輸入中出現的不同行。

SQL Server INTERSECT簡介

SQL Server INTERSECT組合了兩個或多個查詢的結果集,並返回兩個查詢輸出的不同行。

以下是SQL Server INTERSECT的語法:

query_1
INTERSECT
query_2

UNION運算符類似,上述語法中的查詢必須符合以下規則:

  • 兩個查詢必須具有相同的列數和順序。
  • 相應列的數據類型必須相同或相容。

下圖說明瞭INTERSECT操作:

在此圖中,有兩個結果集T1T2

  • T1結果集元素包括:1,23
  • T2結果集元素包括:2,34

T1T2結果集的交集返回不同的行,即:23

SQL Server INTERSECT示例

請考慮以下查詢語句:

SELECT
    city
FROM
    sales.customers
INTERSECT
SELECT
    city
FROM
    sales.stores
ORDER BY
    city;

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

INTERSECT示例

第一個查詢查找客戶所在的所有城市,第二個查詢查找商店的城市。 整個查詢使用INTERSECT查找客戶和商店的城市,這兩個城市是兩個查詢輸出的城市。

請注意,將ORDER BY子句添加到最後一個查詢以對結果集進行排序。


上一篇: SQL Server集合操作符 下一篇: SQL Server約束