在Oracle中提供了三種類型的集合操作: 並(UNION)、交(INTERSECT)、差(MINUS)
- UNION:將多個查詢的結果組合到一個查詢結果之中,並去掉反復值
- UNION ALL:將多個查詢結果組合到一個查詢結果中。可是包括反復值
- INTERSECT:返回多個查詢結果同樣的部分
-
MINUS:返回兩個查詢結果的差集
首先,創建還有一個表 emp10
-- 創建反復數據表 emp10 create table emp10 as (select * from emp where deptno = 10);
查看emp10 和 emp 表數據項,emp10 共同擁有3條記錄。emp表有14條記錄。
select * from emp10;

select * from emp;

union 多個結果並集,並去掉反復值
select * from emp10 union select * from emp

union all 取並集且不去除反復項
select * from emp10 union all select * from emp

intersect 返回多個查詢結果同樣的部分
select * from emp10 intersect select * from emp;

minus 取差集
select * from emp minus select * from emp10;

換個寫法
select * from emp10 minus select * from emp;

通過換寫法之后的查詢結果,能夠看出。minus取的是第一個集合中有但第二個集合中沒有的記錄。