Oracle集合操作
阿新 • • 發佈:2019-02-05
在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取的是第一個集合中有但第二個集合中沒有的記錄。