站点图标 IDC铺

Oracle、MySql、SQLServer 数据分页查询

sqlserver2005的分页查询

在sqlserver2005之前一直借助top关键字来实现分页查询,不过效率低,在sqlserver2005及其之后的版本都使用row_number()解析函数来完成分页查询,效率有了很大的提高,不过sql语句比较复杂,下面给出分页查询的通式:

/*

* firstIndex:起始索引

* pageSize:每页显示的数量

* orderColumn:排序的字段名

* sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句

*/

select top pageSize o.* from (select row_number() over(order by orderColumn) as rownumber,* from(sql) as o where rownumber>firstIndex;

四种方式实现SQLServer 分页查询

oracle分页查询

①ROWNUM查询分页通式:

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

②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

mysql的分页查询

 mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式:

/*
* sql:可以是单表的查询语句,也可以是多表的联合查询语句
* firstIndex:其实的索引
* pageSize:每页显示的记录数
*/

select o.* from (sql) o limit firstIndex,pageSize
退出移动版