首页 > 数据库技术 > 详细

26 Oracle数据库——分页

时间:2020-02-14 21:17:10      阅读:63      评论:0      收藏:0      [点我收藏+]

Oracle数据库管理系统的分页

分页概念

从表中查到的数据过于庞大时,如果全部显示出来,则对浏览器页面显示是一个很大的负担同时也不美观,所以我们有必要对查询结果进行分页。

如百度的搜索结果,如网络小说的下一页下一页。

Oracle中的分页

Oracle数据库为每一个表提供了一个字段:rownum,它用来对查询结果做编号,从1开始,并且对每一次查询结果都从1开始编号。

所以我们要给获取的结果分页时,要依赖rownum,比如只取前五条记录为第一页:

select rownum,e.* from emp e where rownum<=5;

技术分享图片技术分享图片

在使用where筛选时,rownum只能使用<和<=,因为rownum是动态的,当使用where rownum>时,获得的新表的rownum又从1开始,循环往复,使得rownum永远无法大于任何正值。所以当需要获取某个区间的记录时,不能使用 row>x ,row<y的形式,而是使用将rownum的值使用别名记录下来,在对查询到的表进行二次查询,通过记录的别来筛选即可达成目的。

例如:要获取rownum为 5-10的案例:
select rownum,t.* from (select rownum r,e.* from emp e) t where r>=5 and r<=10;

技术分享图片

技术分享图片


设每页显示的数量为m,则查询第n页的公式为:
select * from (select rownum r,e.* from 表名 e where rownum<n*m) t where r>m*n-m;

26 Oracle数据库——分页

原文:https://www.cnblogs.com/Scorpicat/p/12309412.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!