Oracle之集合运算

交集  INTERSECT :取两个查询结果集的共有部分
SELECT DEPTNO FROM EMP
INTERSECT
SELECT DEPTNO FROM DEPT;

 
补集  MINUS :用第一个查询结果集减去第二个查询结果集的结果(常用于检测两个表数据是否一致)
SELECT DEPTNO FROM EMP
MINUS
SELECT DEPTNO FROM DEPT;

SELECT DEPTNO FROM DEPT
MINUS
SELECT DEPTNO FROM EMP;

 

并集  UNION :取两个查询结果集的所有结果(去重)
     UNION ALL :取两个查询结果集的所有结果(不去重)
SELECT DEPTNO FROM EMP
UNION
SELECT DEPTNO FROM DEPT;

SELECT DEPTNO FROM EMP
UNION ALL
SELECT DEPTNO FROM DEPT;

 

注意:集合运算查询所返回的列数以及列的数据类型、列名必须匹配。

  集合运算中只有UNION ALL不会去重。其他三个都会排序后去重,性能比较差。
posted @ 2020-10-08 22:07  小碗吃不胖的  阅读(236)  评论(0编辑  收藏  举报