2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

Oracle中的基本分頁(yè)查詢 - 微醉星辰 - JavaEye技術(shù)網(wǎng)站

 ookkhh 2011-01-05

在Oracle中,分頁(yè)有兩種方式:rownum和row_number。

現(xiàn)有以下兩張表:

DEPT: DEPTNO,DNAME,LOC

EMP: EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO

 

rownum必須從1開始,記錄查詢出來(lái)之后又會(huì)從1開始,如:

Sql代碼
  1. --這樣做能成功獲得結(jié)果  
  2. select rownum,e.* from emp e where rownum<=3;  
  3. --這樣做時(shí)沒辦法獲得結(jié)果的  
  4. select rownum,e.* from emp e where rownum>=2 and rownum<=5;  
  5. --解決辦法是在子查詢中先生成行號(hào),如:  
  6. SELECT * FROM (SELECT ROWNUM r,e.* FROM emp e) a  
  7. WHERE r>=4 AND r<=6  

使用rownum不能直接排序的原因是rownum在order by 之前生成,所以必須先排序,如:

 

現(xiàn)需要查詢出第二頁(yè)記錄(按hiredate倒序,每頁(yè)顯示10條記錄)

1.使用rownum分頁(yè):

Sql代碼
  1. SELECT b.* FROM (  
  2. SELECT ROWNUM r,a.* FROM (  
  3. SELECT * FROM emp ORDER BY hiredate DESC) a ) b  
  4. WHERE b.r>=11 AND b.r<=20  

2.使用row_number解析函數(shù)分頁(yè):

Sql代碼
  1. SELECT b.* FROM (  
  2. SELECT row_number() over (ORDER BY hiredate DESC) r,x.* FROM emp x ) b  
  3. WHERE b.r>=11 AND b.r<=20  

在這里注意的是使用解析函數(shù)row_number的效率比使用rownum的效率高。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多