【 Oracle中rownum的用法 】

不一樣的天空w發表於2016-11-15

1、查詢第幾行的記錄

select sal from emp where rownum=1; //查詢得到第一行記錄

select sal from emp where rownum=5; //不可以查詢到第五行記錄,因為rownum 總是從1開始查詢的,故這種方式不可以直接得到第幾行的記錄。若想得到第五行記錄,應採用如下方式:

select r,sal from (select rownum r,sal from emp) where r= 5;

2、用來獲取前幾行的記錄,即小於某值的記錄。

例:查詢前四行的記錄

  select rownum,sal from emp where rownum<5;

3、用來獲取後幾行的記錄,即大於某值的記錄。例:查詢第五行之後的記錄

          select r,sal from (select rownum r,sal from emp ) where r>5;

4、查詢一個範圍內的記錄。如查詢第三行到底八行的記錄:

  select r,sal from (select rownum r,sal from emp) where r>=3 and r<=8;

5rownum 與排序

       select rownum,sal from emp order by sal;

從這條語句的執行結果你可以發現,rownum不是從1 一次增大,而是亂的,實際上這些rownum是指每條記錄未排序之前所處的行數,當然這不是我們想要的結果,那麼如何得到rownum也是順序排列的查詢結果呢?這就需要先對原紀錄排序,然後從新的順序中提取出rownum和想要的記錄內容。如:

select rownum,sal from (select * from emp order by sal) ;

select rownum, sal from (select * from emp order by sal ) where rownum <5;

select r, sal from (select rownum r,sal from (select * from emp order by sal )) where r >5;

select r, sal from (select rownum r,sal from (select * from emp order by sal ))

where r >5 and r < 10;




轉載:http://blog.csdn.net/lcj8/article/details/4720032

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2128500/,如需轉載,請註明出處,否則將追究法律責任。

相關文章