select *
from tablename
limit n
select top n *
from tablename
(1)rownum(oracle從8開始提供的乙個偽列,是把sql出來的結果進行編號,始終從1開始常見的用途就是用來分頁輸出)
oracle 取前10條記錄
1) select *
from tbname
where rownum < 11;
2) select *
from (select * from tbname order by id desc )
where rownum<=10;
3)這條語句即是輸出第10到第20條紀錄,這裡之所以用rownum rn,是把rownum轉成例項,因為rownum本身只能用<=的比較方式,只有轉成實列,這樣就可做 >=的比較了。
select *
from (select a.*, rownum rn
from torderdetail a)
where rn >= 10 and rn <= 20
rownum的另類用法,有時候我們會遇到這種需求,要求輸出當月的所有天數,許多人會煩惱,資料庫裡又沒有這樣的表,怎麼輸出乙個月的所有天數呢?用rownum就能解決:
select trunc (sysdate, 'mm') + rownum - 1
from dual
connect by rownum <= to_number (to_char (last_day (sysdate), 'dd'))
(2)row_number() over()的使用(一般寫法row_number() over( order by order_date desc) 生成的順序和rownum的語句一樣,效率也一樣)
而對於分組後取最近的10條紀錄,則是rownum無法實現的,這時只有row_number可以實現,row_number() over(partition by 分組字段 order by 排序字段)就能實現分組後編號,比如說要取近乙個月的每天最後10個訂單紀錄
select *
from (select a.*,row_number ()
over (partition by trunc (order_date)
order by order_date desc) rn
from torderdetail a)
where rn <= 10
ORACLE獲取資料庫表的前N條記錄
我剛開始修改乙個用oracle資料庫專案時,用sql select top 4 from table的方法想取得oracle資料庫表的前n條記錄 弄了很久老是出錯,後來才知道錯了 oracle得 用rownum n,不能用top 順便把網上的其它資料庫也記下 1.oracle select from...
資料庫查詢前N條記錄sql語句介紹
1.mssql a 查詢前n條記錄 select top n from table name b 查詢第n條到第m條記錄 select top n from select top m from table name order by column name a order by column nam...
安卓 SQLite 資料庫刪除前 n 條記錄
刪除前 n 條記錄對應的 sql 語句是 delete fromtablewhereidin selectidfromtableorder byidlimit n 其中 table 對應表名,id 表示自增 id 的列名。在 sqlite 中執行以下 即可 string sql delete fro...