日期:2014-05-16  浏览次数:20395 次

Oracle分页的两种方式

目标:实现oracle分页

案例:主键为id的user表,界面呈现形式为每页显示10条记录,可以翻页,当前需要显示第2页。

说明:分页技术主要涉及4个变量,即rowCount、pageSize、currentPage、pageCount,分别表示表中

? ? ? ? ? 所有记录条数、每页显示的记录条数、当前显示第几页、总页数。

?

方式一

? ??

select * from (select u.* , rownum rn from user u where rownum<=x) where rn>y

?

? 其中 x = currentPage * pageSize,y = (currentPage-1) * pageSize,

? 此案例中 x=20,y=10,即第2页为查询rownum为11-20的记录,rownum为oracle关键字。

?

?

方式二

? ??

select top x u.* from user u where u.id not in (select top y id from user)

?

? 其中 x = pageSize,y =?(currentPage-1) *?pageSize,

? 此案例中 x=10,y=10,即第2页为查询id不在前10条记录中的前10条,其实也就是rownum为11-20的记录。

? ??

?

?