首先是Mysql
简直就是简单的一P,主要是利用了mysql的limit关键字
/*
* sql:可以是单表的查询语句,也可以是多表的联合查询语句
* pageIndex:当前页
* pageSize:每页显示的记录数
*/
select o.* from (sql) o limit pageIndex*pageSize,pageSize
接下来mssql ,版本要在2005以后,利用了mssqltop 以及row_number()函数
/*
* pageIndex:当前页
* pageSize:每页显示的数量
* orderColumn:排序的字段名
* sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句
*/
select top pageSize o.* from (select row_number() over(order by orderColumn) as rownumber,* from(sql) as o where rownumber>pageSize*pageIndex;
最后是Oracle 有比较多的方式
先是ROWNUM方式
/*
* pageIndex:当前页
* pageSize:每页显示的数量
* sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句
*/
select * from(select a.*,ROWNUM rn from(sql) a where ROWNUM<=((pageIndex+1)*pageSize)) where rn>pageIndex*pageSize;
然后是row_number()方式
复制代码
/*
* pageIndex:起始索引
* pageSize:每页显示的数量
* orderColumn:排序的字段名
* sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句
*/
select * from(select * from(select t.*,row_number() over(order by orderColumn) as rownumber from(sql) t) p where p.rownumber>pageIndex*pageSize) where rownum<=pageSize