oracle中的合並查詢
為了合並多個select語句的查詢結果,可以使用集合操作符UNION,UNION ALL,INTERSECT和MINUS.語法如下:
SELECT語句1 [ UNION | UNION ALL | INTERSECT | MINUS ] SELECT語句2
使用集合操作符有以下一些限製:
.對於LOB,VARRAY,嵌套表類來說,集合操作符無效
.對於LONG型,UNION ALL,INTERSECT和MINUS無效
.如果選擇列表包含了表達式,必須指定別名
1。UNION,用於獲取兩個結果集的並集,會自動去掉結果集中的重複行,並會以第一列的結果進行排序,例:
select * from employee union select * from employee;
2。UNION ALL,與UNION相似,不同的是UNION ALL不會自動去處重複行,也不會以任何列排序
select * from employee union all select * from employee;
3。INTERSECT,用於獲取兩個結果集的交集,並且以第一列排序,如:
select * from employee intersect select * from employee where id = ' 1 ' ;
4。MINUS,用於獲取結果集的差集(或者說補集),顯示第一個結果集存在的,第2個結果集不存在的數據:
select * from employee minus select * from employee where id = ' 1 ' ;
注意事項:
1。兩個選擇列表必須完全一致
2。可以連續使用集合操作符,這些操作符擁有相同優先級,多個操作符存在時,從左向右執行,如:
SQL > select * from employee minus select * from employee where id = ' 1 ' union select * from employee where id = ' 1 ' ;
ID NAME SALARY EMAIL
-- -------- ---------- ---------- ------------------------------
1 love 3100 fasda
2 love 4100 killme2008 @gmail 文章轉自莊周夢蝶 ,原文發布時間5.17
最後更新:2017-05-17 11:32:47