本文使用到的是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'