-
111查看全部
-
多表查詢; 兩個方法的結果一樣,如何比較優劣 通過比較select語句的執行計劃:explain plan for,一般放在開頭,執行結束之后如何查看explain生成的執行計劃:select * from table(dbms_xplan.display);可以打印查看執行計劃,一般放在末尾 然后看耗費了多少CPU的執行資源,結果發現使用相關子查詢比多表查詢耗費的CPU資源要少查看全部
-
查詢工資大于部門平均工資的員工<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少查看全部
-
分頁查詢<br> select rownum ,r,empno,ename,sal<br> from(select rownum r,empno,ename,sal)<br> from(select rownum,enpno,ename,sal from emp order by sal desc) t1<br> where rownum<=8)t2<br> where r>=5 where rownum > 2,沒有查詢到任何記錄: 因為rownum總是從1開始的,第一條不滿足去掉的話,第二條的rownum 又成了1。依此類推,所以永遠沒有滿足條件的記錄。 由此,Oracle數據集一個經典的SQL語句分頁算法:先排序,再選擇rownum < 某頁的最大值,再選擇rownum > 某頁的最小值。 MYSQL通過關鍵字實現分頁查詢,而Oracle要通過嵌套子查詢的方式來實現分頁查詢,另外要注意rownum始終是從1開始的!查看全部
-
a not in(10,20,null)相當于a!=10 and a!=20 and a!=null,然而a!=null永遠為假, 所以要排除空值,判斷是否是null值,只能用is or is not而不能用= 或者!=。 select * from emp where empno not in (select mgr from emp where mgr is not null);查看全部
-
1111查看全部
-
單行子查詢中的null值問題查看全部
-
111查看全部
-
多行操作符:any 例子:查詢工資比30號部門任意一個員工高的員工信息查看全部
-
111查看全部
-
非法使用單行子查詢查看全部
-
單行查詢查看全部
-
多行操作符查看全部
-
單行操作符查看全部
-
相關子查詢:將主查詢中的值作為參數傳遞給子查詢 select empno,ename,sal,(select avg(sal) from emp where deptno=e.deptno) avgsal from emp e where ssal > (select avg(sal) from emp where deptno=e.deptno);查看全部
舉報
0/150
提交
取消