在本教程中,将学习如何使用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约束
