集合运算符 UNION、UNION ALL、INTERSECT 和 MINUS 可操作指定 Projection 子句中的相
同数目的列的两个查询的结果集,且在两个查询的相应的列中有可兼容的数据类型。
(MINUS 集合运算符有 EXCEPT 作为它的关键字同义词。MINUS 和 EXCEPT 运算符从相同的
运算对象返回的结果通常是相同的。)
这些运算符对两个查询的结果集执行基本的集合操作并集、交集和差集,这两个结果集是这些集合
运算符的左运算对象和右运算对象:
UNION 集合运算符将来自两个查询的符合条件的行组合到单个结果集内,该结果集由一
个查询返回的或两个查询都返回的不重复的行组成。(如果您还包括 ALL 关键字,则
UNION ALL 结果集可包括重复的行。)
INTERSECT 集合运算符比较来自两个查询的结果集,但仅返回同时在两个查询的结果集
中的不重复的行。
MINUS 集合运算符比较来自两个查询的结果集,但仅返回在左边的查询的结果集中但不
在右边的查询的结果集中的不重复的行。
在业务分析上下文中,集合运算符是有用的。它们还可用在 SELECT 语句中,在已执行了诸如
UPDATE、INSERT、DELETE 或 MERGE 这样的 DML 操作之后,来检查数据库的完整性。当
您将数据转移到历史表时,可类似地使用集合运算符,例如,当您需要在从原始的表删除行之前确
认在历史表中有正确的数据的时候。
所有集合运算符有相同的优先顺序。在包括多个集合运算符的复杂的查询中,运算符的优先顺序为
从左至右。请使用括号来将集合运算符及其运算对象分组,如果您需要覆盖集合运算符的缺省的从
左至右的优先顺序的话。
仅 UNION 集合运算符支持 ALL 关键字。带有 INTERSECT、MINUS 或 EXCEPT 集合运算符
的 ALL 关键字是无效的,仅从其返回不重复的行。
当比较行来计算集合并集或差集时,在 INTERSECT 和 MINUS 操作中的两个 NULL 值被认为是
相等的。