Oracle查詢小結
本篇最近工作中常用得oracle查詢語句得小結
oracle表複雜查詢
對資料分組的總結
1分組函數隻能出現在選擇清單、having、order by子句種
2 如果在select 語句種同時包含有group by ,having ,order by 那麼他們的順序是group by , having , order by
3 在選擇列種如果有列、表達式、和分組函數,那麼這些列和表達式必須有一個出現在group by 子句中,否則就會出錯
如select deptno,avg(sal),max(sal) from emp group by deptno having avg(sal)<2000;
這裡deptno就一定要出現在 group by 中
合并查詢
有時在實際應用中,為了合并多個select語句的結果,可以使用集合操作符号 union , union all,intersect , minus
1)union 該操作符用于取得兩個結果集的并集。當使用該操作符時,會自動去掉結果集中重複行。
select ename,sal,job from emp where sal>2500
union
select ename,sal,job from emp where job=‘MANAGER';
2)union all 該操作賦與union相似,但是它不會取消重複行,而且不會排序。
select ename,sal,job from emp where sal>2500
union all
select ename,sal,job from emp where job='manager';
3)intersect 使用該操作符用于取得兩個結果集的交集。
select ename,sal,job from emp where sal>2500
intersect
select ename,sal,job from emp where job='manager';
4) minus 使用該操作符用于取得兩個結果集的差集,它隻會顯示存在第一個集合中,而不存在第二個集合中的資料。
select ename,sal,job from emp where sal>2500
minus
select ename,sal,job from emp where job='manager';