使用 UNION、INTERSECT 和 EXCEPT 对查询结果执行集合运算
集合运算符和 NULL
集合运算符 UNION、EXCEPT 和 INTERSECT 处理 NULL 的方式与 NULL 在搜索条件中时处理的方式不同。此差异是使用集合运算符的主要原因之一。
在比较行时,集合运算符将 NULL 值视为彼此相等。相反,在搜索条件中将 NULL 与 NULL 进行比较时,结果是未知的(不为真)。
此差异的一个特别有用的结果是:query-1 EXCEPT ALL query-2
的结果集中的行数始终 是各个查询的结果集中的行数之差。
以两个表 T1 和 T2 为例,其中每个表都具有以下列:
col1 INT, col2 CHAR(1)
表中的数据如下:
-
表 T1。
col1 col2 </