在组合的查询中的集合运算符

集合运算符 UNION、UNION ALL、INTERSECT 和 MINUS 可操作指定 Projection 子句中的相同数目的列的两个查询的结果集,且在两个查询的相应的列中有可兼容的数据类型。

(MINUS 集合运算符有 EXCEPT 作为它的关键字同义词。MINUS 和 EXCEPT 运算符从相同的运算对象返回的结果通常是相同的。)

这些运算符对两个查询的结果集执行基本的集合操作并集交集差集,这两个结果集是这些集合运算符的左运算对象和右运算对象:

在业务分析上下文中,集合运算符是有用的。它们还可用在 SELECT 语句中,在已执行了诸如 UPDATE、INSERT、DELETE 或 MERGE 这样的 DML 操作之后,来检查数据库的完整性。当您将数据转移到历史表时,可类似地使用集合运算符,例如,当您需要在从原始的表删除行之前确认在历史表中有正确的数据的时候。

所有集合运算符有相同的优先顺序。在包括多个集合运算符的复杂的查询中,运算符的优先顺序为从左至右。请使用括号来将集合运算符及其运算对象分组,如果您需要覆盖集合运算符的缺省的从左至右的优先顺序的话。

仅 UNION 集合运算符支持 ALL 关键字。带有 INTERSECT、MINUS 或 EXCEPT 集合运算符的 ALL 关键字是无效的,仅从其返回不重复的行。

当比较行来计算集合并集或差集时,在 INTERSECT 和 MINUS 操作中的两个 NULL 值被认为是相等的。