-
自連接 簡介
查看全部 -
笛卡爾積,多表查詢正確集
查看全部 -
sql plus報表功能
查看全部 -
小計、總計報表功能<br/>查看全部
-
group by語句增強
查看全部 -
?在分組查詢中使用排序,order by 2,
2表示表達(dá)式中的字段位置
查看全部 -
盡量使用where來代替having查看全部
-
where與having的區(qū)別
查看全部 -
組函數(shù)與 group by 語法<br/>查看全部
-
group by子句
查看全部 -
sum(decode(to_char(hiredate,'yyyy'),'1990',1,0))
hiredate在1990的總?cè)藬?shù)
decode --判斷
decode 變量,'對比值',y,n
查看全部 -
select?empno,ename,sal,(select?avg(sal)?from?emp?where?deptno=e.deptno)?avgsal from?emp?e where?sal>(select?avg(sal)?from?emp?where?deptno=e.deptno) select?e.empna,e.ename,e.sal,d.avgsal from?emp?e,select?deptno,avg(sal)?avgsal?from?emp?group?by?deptno)d
where e.deptno=d.deptno and e.sal>d.avgsal
查看全部 -
rownum是偽列,oracle默認(rèn)生成行號 行號需要注意的兩個問題 1、行號永遠(yuǎn)按照默認(rèn)的順序生成 2、行號只能使用<,<=;不能使用>,>= select rownum,empno,ename,sal from (select * from emp order by sal desc) where rownum<=3; 將排序后的表作為一個集合放到from()中 生成一個新表 重新再查詢rownum 就可以讓rownum也實現(xiàn)排序了
查看全部 -
select empno,(select deptno from emp where empno='1')? --select后面的子查詢只能是返回單行記錄
?from emp;
where后面的子查詢中不能有分組函數(shù)?
having后面的子查詢中可以有分組函數(shù)?
select后面的子查詢得到的結(jié)果必須是單條記錄
?from后面的子查詢得到的結(jié)果必須是多條記錄
查看全部 -
select level,empno,ename,sal,mgr --level 偽列 層級
from emp
connect by prior empno=mgr --prior 上層
start with empno=001//start with mgr is null
order by level/order by 1;
自連接缺陷:多表查詢》》笛卡爾集》》》會帶來至少平方級別的數(shù)據(jù)累計(不適合大表)
引出層次查詢(實際是是單表查詢? 沒有笛卡爾集)
需要遍歷樹結(jié)構(gòu)?
節(jié)點連接條件(上一節(jié)點的員工號是下一節(jié)點的老板)connect by prior?empno=mgr
需要設(shè)置開始節(jié)點 start with
各有優(yōu)缺點:自連接直觀(但不適合大表) 層次查詢性能更好(但是不直觀)
查看全部
舉報