-
break on 去除重復的內容,只保留一個 group by rollup(a,b)分組增強形式查看全部
-
按部門統計員工的人數 函數查詢: select count(*) Total,sum(to_char(hiredate,'YYYY'),'1981','1','0') "1981", Total,sum(to_char(hiredate,'YYYY'),'1981','1','0') "1982", from emp 子查詢: select (select count(*) from emp) Total, (select count(*) from emp where to_char(hirdate,'YYYY')='1981') "1981", (select count(*) from emp where to_char(hirdate,'YYYY')='1982') "1982" from dual 偽表查看全部
-
查詢實行計劃查看全部
-
查詢工資大于部門平均工資的員工<br> 相關子查詢:<br> select empno,ename,sal,(select avg(sal) from emp where deptno=e.deptno) avgsal<br> from emp e<br> where sal>(select avg(sal) from emp where deptno=e.deptno)<br> 多表查詢:<br> select e.empno,e.ename,e.sal,d.avgsal<br> from emp e,(select deptno,avg(sal) avgsal from emp group by deptno) d<br> where e.deptno=d.deptno and e.sal>d.avgsal<br> 相關子查詢比多表查詢占用cpu少查看全部
-
實例一:分頁查詢,4條每頁,并顯示第二頁數據<br> select empno,ename,sal<br> from (select rownum r,empno,ename,sal<br> from (select rownum,empno,ename,sal from emp order by sal desc) e1<br> where rwonum<=8) e2<br> where r>5查看全部
-
rownum默認生成行號,即使用order by排序,也不會打亂rownum默認生成行號的順序<br> 行號只能用< <= 不能用> >= select * from (select * from emp order by sal desc) where rownum<=3查看全部
-
子查詢需要注意的問題 不要忘記子查詢語法中的小括號 形成良好的子查詢的書寫風格 可以使用子查詢的位置:Where,select,having,from 不可以使用子查詢的位置:group by 強調:from后面的子查詢 主查詢和子查詢可以不是一張表 一般不在自查詢中,使用排序;但是在Top-N分析問題中,必須對子查詢排序 一般先執行子查詢,再執行主查詢;但相關子查詢例外 單行子查詢只能使用單行操作符;多行子查詢只能多行操作符 注意:子查詢中是Null值的問題查看全部
-
1.自連接 優點:查詢的結果直觀 缺點:是不適合大表查詢 解決辦法:用層次查詢 2.層次查詢 優點:屬于單表查詢,只有單表查詢才不會產生笛卡爾積 缺點:查詢結果不太直觀查看全部
-
自連接 同一個表里相關聯的數據可以使用自連接 原理是通過給同一個表取不同的別名,將其視為多張表 這樣會產生一個大的笛卡爾積,當然這種方法不適用于數據量大的表,因為會導致笛卡爾積過大,運行緩慢查看全部
-
select d.deptno,d.dname,count(e.empno) from emp e,dept d where e.deptno=d.deptno group by d.deptno,d.name; 注意這樣得出的結果不完全正確,因為40號部門在員工表中不存在但是在部門表中存在,為了在結果中顯示40號部門,要使用外連接!外連接的作用就是把對于連接條件不成立的記錄仍然包含在最后的結果中,分為左外連接和右外連接。 特別注意左外連接和右外連接的寫法,位置與名字相反,符號用括號內加號表示: 左外連接where e.deptno=d.deptno(+); 右外連接where e.deptno(+)=d.deptno;查看全部
-
笛卡兒積的列數等于各表列數相加,行數等于各表行數相乘。 為了避免笛卡爾集,可以在where加入有效的連接條件。 在實際運行環境下,應避免使用笛卡爾全集。查看全部
-
groupby語句增強<br> select deptno,job,sum(sal)<br> from emp<br> group by rollup(deptno,job);<br> <br> group by rollup分組等價于<br> group by deptno<br> +<br> group by job<br> +<br> group by null group by 語句的增強可用于做報表: break on deptno skip 2 //相同部門號只顯示一次,不同部門號間隔兩行 set pagesize 30 //設置每一頁顯示30行查看全部
-
a追加命令,一定要在a后面添加兩個空格查看全部
-
order by 后可以跟 序號(代表select列中的順序),分組函數,列名,別名查看全部
-
出現在select后面的字段,且沒有在分組函數中的,必須要在group by子句中聲明; where子句中不能使用組函數; having用于過濾分組后的數據,與where類似; 如果過濾條件中沒有分組函數時,where與having通用,那么從sql優化的角度來講,where的效率更高,因為having是先分組再過濾,而where是先過濾再分組。查看全部
舉報
0/150
提交
取消