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约束