在本教學中,將學習如何使用SQL Server INTERSECT運算符組合兩個輸入查詢的結果集,並返回兩個輸入中出現的不同行。
SQL Server INTERSECT簡介
SQL Server INTERSECT組合了兩個或多個查詢的結果集,並返回兩個查詢輸出的不同行。
以下是SQL Server INTERSECT的語法:
query_1
INTERSECT
query_2
與UNION運算符類似,上述語法中的查詢必須符合以下規則:
- 兩個查詢必須具有相同的列數和順序。
- 相應列的數據類型必須相同或相容。
下圖說明瞭INTERSECT操作:

在此圖中,有兩個結果集T1和T2:
T1結果集元素包括:1,2和3。T2結果集元素包括:2,3和4。
T1和T2結果集的交集返回不同的行,即:2和3。
SQL Server INTERSECT示例
請考慮以下查詢語句:
SELECT
city
FROM
sales.customers
INTERSECT
SELECT
city
FROM
sales.stores
ORDER BY
city;
執行上面查詢語句,得到以下結果:

第一個查詢查找客戶所在的所有城市,第二個查詢查找商店的城市。 整個查詢使用INTERSECT查找客戶和商店的城市,這兩個城市是兩個查詢輸出的城市。
請注意,將ORDER BY子句添加到最後一個查詢以對結果集進行排序。
上一篇:
SQL Server集合操作符
下一篇:
SQL Server約束
