在本教程中,将学习如何使用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
子句添加到最后一个查询以对结果集进行排序。