Oracle垂直重叠查询(union/union all/minus/intersect)

Oracle垂直堆叠查询(union/union all/minus/intersect)

场景1:找出两个或多个表中相同行。(交集)

SELECT empno,ename FROM emp

intersect

select empno,ename from emp_bonus;

 

场景2:找出在表1中,但不存在表2的记录。如,查询所有员工中,没有获得奖金的人员。(差集

SELECT empno,ename FROM emp

minus

select empno,ename from emp_bonus;

 思考:为什么不用 not in 或者 not exists

 

场景3:汇总所有人员。(并集

union (会去掉重复的记录,去重规则:查询的所有列的值相同)

union all (不会进行去重操作)