Oracle 表復雜查詢之多表合並查詢


本文使用到的是oracle數據庫scott方案所帶的表,scott是oracle數據庫自帶的方案,使用前請確保其解鎖

 

Oracle合並查詢一共有四種方式,分別使用不同的關鍵字:UNION、UNION ALL、MINUS、INTERSECT

1、UNION ALL

 

使用UNION ALL,表示取A、B的合集,不過濾重復的數據行,代碼如下:

select * from emp where sal>2500

左圖表示結果集A

select * from emp where JOB='MANAGER'

左圖表示結果集B

現在分析結果集A和結果集B,發現

紅框中的數據重復了,接着我們在使用UNION ALL關鍵字

select * from emp where sal>2500
UNION ALL
select * from emp where JOB='MANAGER'

UNION ALL   重復數據並沒有被排除掉

 

2、UNION

使用UNION,會將結果集A和結果集B進行UNION ALL運算,然后取兩者交集的余集作為結果集

代碼如下:

select * from emp where sal>2500
UNION
select * from emp where JOB='MANAGER'

原先使用UNION ALL中重復的記錄行被排除掉了

 

3、Intersect

 

 使用Intersect,會將結果集A和結果集B進行UNION ALL運算,然后兩者之間的集交集作為結果集和UNION剛好相反

 

select * from emp where sal>2500
INTERSECT
select * from emp where JOB='MANAGER'

將兩個結果集的交集檢索出來了

 

4、MINUS

 

 使用MINUS,取結果集A減去結果集B留下的差集,注:如果結果集A小於等於結果集B,返回空結果集.

select * from emp where sal>2500

左圖表示結果集A

select * from emp where JOB='MANAGER'

左圖表示結果集B

select * from emp where sal>2500
MINUS
select * from emp where JOB='MANAGER'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM