两个或多个独立查询的执行结果集可以通过集合运算符(UNION、INTERSECT、EXCEPT)进行集合层面的合并与筛选。其基础语法为:
query1UNION [ALL]query2query1INTERSECT [ALL]query2query1EXCEPT [ALL]query2
要求参与集合运算的各查询,其输出列的数量必须相同,且对应位置上的字段数据类型必须在语义上相互兼容。
三大集合运算符的具体语义如下:
UNION(并集):将两个查询的结果集合并,默认自动剔除两集合之间的重复行。附加 ALL 选项可保留所有重复行(执行速度大幅提升,因为省去了全量排序去重开销)。
INTERSECT(交集):仅返回同时存在于两个查询结果集中的共有数据行,默认自动去重。
EXCEPT(差集):返回所有存在于第一个查询结果中、但不存在于第二个查询结果中的数据行,默认自动去重。