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...