当前位置:趣知科普网>游戏数码>电脑>

oracle如何实现分页

电脑 阅读(2.01W)

使用oracle数据库查询数据时,每页展示数据有限,大部分情况下需要分页展示。如每页显示10条,一页一页查询出来。下面就来介绍下oracle分页实现

操作方法

(01)使用T_BASE_PROVINCE表作为测试演示使用,表字段如下IDNUMBER(11,0)PROVINCEIDVARCHAR2(6 BYTE)PROVINCEVARCHAR2(40 BYTE)数据可以根据自己的需要,插入一定量的测试数据

oracle如何实现分页

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

oracle如何实现分页 第2张

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

oracle如何实现分页 第3张

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

oracle如何实现分页 第4张

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

oracle如何实现分页 第5张

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

oracle如何实现分页 第6张

(07)通用分页格式,page是页码,size是每页显示条数select *from (select t.*, rownum rnfrom (select *from T_BASE_PROVINCEorder by id asc) twhere rownum <= page*size)where rn > (page-1)*size;

特别提示

以上只是针对简单的单句分页查询,联表查询可以按照上面的方式适当改造就可以了