7.17 SQL Server INTERSECT(交集)
SQL Server INTERSECT(交集)
简介
SQL Server INTERSECT
组合了两个或多个查询的结果,并返回多个查询相同的行。
语法:
query_1
INTERSECT
query_2
与UNION
类似,上述语法中的查询必须符合以下规则:
- 在两个查询中,列的数量和顺序必须相同
- 对应列的数据类型必须相同或者兼容
在本图中,我们有两个结果集T1和T2:
- T1结果集包括1、2和3。
- T2结果集包括2、3和4。
T1和T2结果集的交集返回两个集合相同的行,即2和3。
示例
考虑以下查询:
SELECT
city
FROM
sales.customers
INTERSECT
SELECT
city
FROM
sales.stores
ORDER BY
city;
第一个查询查找客户的所有城市,第二个查询查找商店的城市。整个查询使用INTERSECT
,返回同时有客户和商店的城市,这是两个输入查询输出的城市。
如果要排序,将ORDER BY
子句添加到最后一个查询中