在系统开发过程中,需要对数据进行查询,大部分情况下从数据库中查询的数据量比较大,在系统页面无法全部显示,而且查询全部的数据会影响系统的反应速度,需要对所查询的数据进行分页的查询操作,以此减轻系统的压力。
在Oracle数据库中,如何完成分页SQL的编写,影响着系统开发的速度,特提供两个SQL的分页模板:
(1).采用oracle的内置函数ROWNUM。(ROWNUM是结果的伪列,仅仅当聚集结果时产生,但早于排序或聚合)
select <columns I actually want>,rownum r
from (select <colums I actually want> from table name order by Group name) where rownum<= The number of rows;
(2).采用oracle的内置函数ROW_NUMBER。
select <desired columns> (select <desired columns>,row_number() over (oeder by <ordering column>)r
from <source table,view,etc>) where r between :page-start-row and :page-end-row
备注::page-start-row 页起始行 :page-end-row 页结束行
在数据库之外的分页之中,应用层缓存技术分页不可避免地产生大量的网络流量;游标驱动分页在数据库里完成操作,会受到游标技术的影响,使得分页变得“陈旧”