Orcl分页查询

来源:互联网 发布:淘宝达人怎么发帖子 编辑:程序博客网 时间:2024/06/05 16:02

oracle的分页查询方法相对来说要多点,ROWNUM、row_number(),今天主要讲两种效率稍好的分页查询语句。

   ①ROWNUM查询分页通式:

/** firstIndex:起始索引* pageSize:每页显示的数量* sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句*/select * from(select a.*,ROWNUM rn from(sql) a where ROWNUM<=(firstIndex+pageSize)) where rn>firstIndex

以下截图是以这种方式进行的查询语句:

                                                   查询(1-21)这20条记录*****(没有ID=6的记录,所以查询到的最大ID为21)

                                       查询(22-41)这20条记录*****(没有ID=6的记录,所以开始查询到的ID为22,以及最大ID为41)

 

   ②row_number()解析函数分页查询通式:

/* * firstIndex:起始索引 * pageSize:每页显示的数量 * orderColumn:排序的字段名 * sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句 */select * from(select * from(select t.*,row_number() over(order by orderColumn) as rownumber from(sql) t) p where p.rownumber>firstIndex) where rownum<=pageSize

以下截图是使用row_number()方式的分页查询效果:

                                               查询(1-21)这20条记录*****(没有ID=6的记录,所以查询到的最大ID为21)

                                       查询(22-41)这20条记录*****(没有ID=6的记录,所以开始查询到的ID为22,以及最大ID为41)

0 0
原创粉丝点击