oracle如何实现分页
来源:网络收集 点击: 时间:2024-02-24使用T_BASE_PROVINCE表作为测试演示使用,表字段如下
IDNUMBER(11,0)
PROVINCEIDVARCHAR2(6 BYTE)
PROVINCEVARCHAR2(40 BYTE)
数据可以根据自己的需要,插入一定量的测试数据

查询下总共数据量
select count(*) from T_BASE_PROVINCE;
在分页的时候,一般会显示总页数,需要先查询总数据量得到总页数,总页数=总量/每页显示记录数

前面的测试数据初始化完成之后,查询前20条大概有什么样的数据

分页语句一:含order by排序,多一层嵌套,因为order by在select之后执行,不在里面写的话可能会出现不是预期的排序结果
select *
from (select t.*, rownum rn
from (select *
from T_BASE_PROVINCE
order by id asc) t
where rownum = 20)
where rn 10;

分页语句二:如果不需要排序,可以使用如下语句
select a1.*
from (select t.*,rownum rn
from T_BASE_PROVINCE t
where rownum =20) a1
where rn 10;

分页语句三:between and方式,性能没有上面的高,但写法简单
select a1.*
from (select t.*,rownum rn from T_BASE_PROVINCE t) a1
where rn between 11 and 20;

通用分页格式,page是页码,size是每页显示条数
select *
from (select t.*, rownum rn
from (select *
from T_BASE_PROVINCE
order by id asc) t
where rownum = page*size)
where rn (page-1)*size;
注意事项以上只是针对简单的单句分页查询,联表查询可以按照上面的方式适当改造就可以了
ORACLE分页版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_134118.html