Oracle数据库分页查询的实现

                                                                Oracle数据库分页查询的实现

一、分页实现基本知识

1、oracle数据库不存在mysql所具有的limit关键字,oracle分页需要依赖其本身具有的伪列rownum来实现;

2、oracle数据库的第一条数据从1开始,不同于mysql的第一条数据从零开始;

3、页面大小:每页显示的数据行数

二、分页查询过程分析

1、页面大小为10;

页码(第几页)

开始值

结束值

1

1

1*10

2

2

2*10

3

3

3*10

n

n

n*10

2、总页数=数据总量/页面大小

3、每页结束值=页码*页面大小

4、分页sql:使用三层嵌套查询实现;

     4.1、第一层:实现伪列查询,在结果集中加入伪列,并依据排序字段对表中内容进行升序排序;

select rownum r, t.* from TableName t order by 排序字段 asc;

4.2、第二层:将第一层的查询结果作为临时表,在第一层查询结果集的基础上依据伪列进行升序排序并查询所有数据;

select * from (第一层) order by r asc;

      4.3、第三层:将第二层的查询结果作为临时表,在此基础上依据伪列实现分页;

select * from (第二层) where r >= 开始值 and r <= 结束值;

5、将以上三层嵌套形成最终分页查询SQL;

select * from(

  select * from(

    select rownum r, t.* from user_tab t order by id asc)

      order by r asc)

       where r >= 1 and r <= 1*10;

 

 

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页