oracle學習筆記三(分頁查詢)

2021-08-25 14:58:21 字數 1696 閱讀 7048

oracle分頁查詢:一共三種方式

1.rownum分頁

(select * from emp)

2.顯示rownum[oracle分配的]

select a1.*,rownum rn from (select * from emp )a1;

查詢1到10行記錄

select a1.*,rownum rn from (select * from emp )a1 where rownum<=10; or

select * from (select a1.*,rownum rn from (select * from emp )a1 where rownum<=10) ;

查詢6到10行記錄

select * from (select aa.*,rownum rm from(select * from emp order by sal)aa where rownum<=10) where rm>5;

查詢1到5行記錄

select * from (select a1.*,rownum rn from (select * from emp )a1 where rownum<=10) where rownum<=5;

4.幾個查詢變化

a。指定查詢列,只需修改最裡層的子查詢;

b。排序,也只需修改最裡層的子查詢;

select * from (select a1.*,rownum rn from (select ename,sal from emp )a1 where rownum<=10) where rn=>6;

select * from (select a1.*,rownum rn from (select ename,sal from emp order by sal desc)a1 where rownum<=10) where rn=>6;

顯示4到9的記錄

select * from (select a1.*,rownum rn from (select * from emp )a1 where rownum<=9) where rn>=4;

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;

2 按分析函式來分

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

3 按rownum來分。

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

效率1》3》2

select x.* from (

select z.*,rownum numbers from(

select * from emp order by sal)z

where rownum<10) x

where x.numbers>5

Mybatis Plus學習筆記(三) 分頁查詢

本系列部落格其他文章下方鏈結檢視 mybatis plus學習筆記 目錄 mybatis的rowbounds就可以實現分頁,但是這是一種記憶體分頁,他的原理是把符合邏輯的記憶體全部查出,然後展示需要的資料。如果資料量小的時候,完全可以使用,但是當資料量大的時候,就是對記憶體的一種浪費。mp分頁外掛程...

oracle(三) 分頁排序

目錄 排序分頁sql 不排序只分頁sql 總結 oracle的分頁不像mysql有limit可以分頁,oracle的分頁需要用到oracle自帶的rownum偽列進行分頁。在沒有排序沒分頁的情況下 select user id,user name,rownumfrom sec users 結果如下 ...

Oracle 學習筆記(九)分頁查詢

上次筆記學到分頁查詢的三種方式 rowid 分析函式和 rownum,這次筆記重點學 rownum 方式的分頁查詢。1.查詢 emp 表為例 select from emp 2.顯示 rownum 由系統自己分配 select e.rownum rn from select from emp e r...