OracleMySqlSQLServer 数据分页查询

Posted 无恨星晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OracleMySqlSQLServer 数据分页查询相关的知识,希望对你有一定的参考价值。

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

  

 

以上是关于OracleMySqlSQLServer 数据分页查询的主要内容,如果未能解决你的问题,请参考以下文章

各种数据库(oraclemysqlsqlserver等)在Spring中数据源的配置和JDBC驱动包

数据库MySQL相关知识

分页功能设计(解决数据重复问题)

数据分页(物理分页和逻辑分页)

对数据分页后,2次查询的分页,点击上一页,下一页,首页,尾页,都会跳到2次查询之前的分页显示,怎么办

oracle 分页查询为啥数据重复