Oracle中rownum的用法

2021-06-04 12:34:15 字數 1158 閱讀 4252

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;

5、rownum 與排序

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;

Oracle中rownum的用法

1 查詢第幾行的記錄 select sal from emp where rownum 1 查詢得到第一行記錄 select sal from emp where rownum 5 不可以查詢到第五行記錄,因為 rownum 總是從1 開始查詢的,故這種方式不可以直接得到第幾行的記錄。若想得到第五行...

oracle中rownum的用法

對於 oracle 的 rownum 問題,很多資料都說不支援 between.and,只能用以上符號 並非說用 gt between.and 時會提示sql語法錯誤,而是經常是查不出一條記錄來,還會出現似乎是莫名其妙的結果來,其實您只要理解好了這個 rownum 偽列的意義就不應該感到驚奇,同樣是...

Oracle中rownum的用法

含 釋 1 rownum是oracle系統順序分配為從查詢返回的行的編號,返回的第一行分配的是1,第二行是2,依此類推,這個偽欄位可以用於限制查詢返回的總行數。2 rownum不能以任何基表的名稱作為字首。使用方法 現有乙個商品銷售表sale,表結構為 month char 6 月份 sell nu...