天天看點

Oracle查詢小結

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';