目标:实现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的记录。
? ??
?
?