Oracle数据库的SQL分页模板

时间:2021-12-05 08:48:53

     在系统开发过程中,需要对数据进行查询,大部分情况下从数据库中查询的数据量比较大,在系统页面无法全部显示,而且查询全部的数据会影响系统的反应速度,需要对所查询的数据进行分页的查询操作,以此减轻系统的压力。

    在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  页结束行

 

        在数据库之外的分页之中,应用层缓存技术分页不可避免地产生大量的网络流量;游标驱动分页在数据库里完成操作,会受到游标技术的影响,使得分页变得“陈旧”