oracle 幾種 分頁語句

2021-06-23 05:38:39 字數 681 閱讀 1181

1.根據rowid來分

select * from t_xiaoxi where rowid in(select rid from (select rownum rn,rid from(select rowid rid,cid from

t_xiaoxi order by cid desc) where rownum<10000) where rn>9980) order by cid desc;

執行時間0.03秒

2.按分析函式來分

select * from (select t.*,row_number() over(order by cid desc) rk from t_xiaoxi t) where rk<10000 and rk>9980;

執行時間1.01秒

3.按rownum來分

select * from(select t.*,rownum rn from(select * from t_xiaoxi order by cid desc) t where rownum<10000) where

rn>9980;執行時間0.1秒

其中t_xiaoxi為表名稱,cid為表的關鍵字段,取按cid降序排序後的第9981-9999條記錄,t_xiaoxi表有70000多條記錄

個人感覺1的效率最好,3次之,2最差

詳解Oracle的幾種分頁查詢語句

分頁查詢格式 select from select a.rownum rn from select from table name a where rownum 40 where rn 21 其中最內層的查詢select from table name表示不進行翻頁的原始查詢語句。rownum 40...

詳解Oracle的幾種分頁查詢語句

2009 04 09 13 14 佚名 51cto 字型大小 t t 本文將介紹oracle的分頁查詢語句,看過本文後,大家基本上可以按照本文給出的格式來進行套用。不同的格式具備不同的執行效率。分頁查詢格式 select from select a.rownum rn from select fro...

詳解Oracle的幾種分頁查詢語句

分頁查詢格式 select from select a.rownum rn from select from table name a where rownum 40 where rn 21 其中最內層的查詢select from table name表示不進行翻頁的原始查詢語句。rownum 40...