select * from (select A.*,rownum rd from (select * from [tablename] where [condition] order by [condition] ) A where rownum<=[endpage*pagesize]) where rd>=[startpage*pagesize];
1.select * from [tablename] where [condition] order by [condition]
按条件对数据表进行筛选排序,作为分页的基本数据
2.select A.*,rownum rd from (select * from [tablename] where [condition] order by [condition] ) A where rownum<=[endpage*pagesize]
使用rownum选择小于结尾页的数据,必须对rownum采用别名
3.select * from (select A.*,rownum rd from (select * from [tablename] where [condition] order by [condition] ) A where rownum<=[endpage*pagesize]) where rd>=[startpage*pagesize]
在2中得到的表中选择大于开始页的数据
原文地址:http://www.cnblogs.com/SLchuck/p/3751097.html