Oracle 中取前幾條記錄 分頁

2021-04-12 20:10:04 字數 796 閱讀 9075

oracle中用於類似mssql中top的關鍵字為rownumber,具體用法如下:

select firmcode,balance from (

select   rownum   rn,t.firmcode,t.balance

from firmbalance_tab t

order by balance desc

) tab

where tab.rn >0 and tab.rn < 11;

注:tab指的是: select   rownum   rn,t.firmcode,t.balance   from firmbalance_tab t        order by balance desc

查詢得到的結果集.

tab.rn 指的是:select rownum rn

rownum是oracle給出的乙個用來表明當前記錄位置的乙個字段 

下面的也是正確的:

select firmcode from firmtable where rownum < 10 取前十條記錄;

select firmcode from firmtable where rownum = 1 取第一條記錄

但是下面是不正確的:

select firmcode from firmtable where rownum = 2 ,因為rownum都是從1開始的,沒第一條不可能出來第二條的

另外,按oracle 9i參考手冊所言,如果跟order by的話需要用巢狀查詢:

因為rownum是已經排序好的結果集中的行號,並且用在最上層的限制中.

mysql分組取每組前幾條記錄

drop table if exists ho archives create table ho archives id mediumint 11 unsigned not null auto increment comment 自增id type smallint 5 unsigned not n...

oracle中取前幾條資料 TRUNC 函式

在oracle中查表中的前10條資料 select from test whererownum 10 rownum是把sql出來的結果進行編號,始終從1開始,常見的用途就是用來分頁。類似於mysql和sql server的top。select from select a.rownum rnfrom ...

Freemarker list物件取前幾條資料

專案中用freemarker 做顯示層,可能會遇到取出資料前幾條,通過用freemarker 取資料用 但是這種取法是取出所有的資料.如果我想去第一條資料 第一項的值 現在只想取前5條,該怎麼做?如下 定義n的值為list5的大小 如果n大於6,頁面中可能要求只顯示6條 注 gt,gte,lt,lt...