oracle 集合操作

如果我們需要將兩個select語句的結果作爲一個整體顯示出來,我們就需要用到union或者union all關鍵字。union(或稱爲聯合)的作用是將多個結果合併在一起顯示出來。

union和union all的區別是,union會自動壓縮多個結果集合中的重複結果,而union all則將所有的結果全部顯示出來,不管是不是重複。



Union:對兩個結果集進行並集操作,不包括重複行,同時進行默認規則的排序;

Union All:對兩個結果集進行並集操作,包括重複行,不進行排序;

Intersect:對兩個結果集進行交集操作,不包括重複行,同時進行默認規則的排序;

Minus:對兩個結果集進行差操作,不包括重複行,同時進行默認規則的排序。

可以在最後一個結果集中指定Order by子句改變排序方式。


例子:

在scott用戶下,創建表emp2,該表只包含emp中20部門員工的信息:

 

代碼:create table emp2 as select * from emp where deptno=20;

先看下emp和emp2兩個表的區別:

[emp表結構及內容]

 

[emp2表結構及內容]

~ 驗證UNION及UNION ALL

 UNION:select * from emp UNION select * from emp2;/*使用此語句,重複的內容不再顯示*/

 

 UNION ALL:select * from emp UNION ALL select * from emp2;/*使用此語句,重複的內容依然顯示*/

~ 驗證INTERSECT

 INTERSECT:select * from emp INTERSECT select * from emp2;/*使用此語句,只顯示兩個表中彼此重複的記錄*/


~ 驗證MINUS

 MINUS:select * from emp MINUS select * from emp2;/*使用此語句,返回顯示差異的記錄*/



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章