利用top构造Sql Server分页查询

数据库 SQL Server
利用Sql Server的top,可以构造Sql Server分页查询,下面就将为您介绍这样的两种方法,供您参考,希望对您学习SQL数据库有所帮助。

使用Sql Server分页查询是SQL数据库最常见的操作之一,下面将为您介绍两种利用top构造Sql Server分页查询的方法,供您参考。

Sql Server中,假设一个查询sql为querySql,该sql为任意条件的组合,我们把它当作子查询结果表,可利用Sql Server的top来构造通用Sql Server分页查询:

  1. if (pageInfo.getPageNum() == 1) {     
  2.       pagenatedSql = "select top " + pageInfo.pageSize + " * from (" + sql + ") as t1 " ;     
  3. }     
  4. else {     
  5.       pagenatedSql = "select top " + pageInfo.pageSize + " * from (" + sql + ") as t1 " +     
  6.             " where (t1." + indexKey + " > (select max(t3." + indexKey + ")" +      
  7.             " from (select top " + (pageInfo.pageNum - 1) * pageInfo.pageSize + " t2." + indexKey + " from (" + sql + ") as t2 order by t2." + indexKey + ") as t3" +     
  8.             " )) order by t1." + indexKey;     
  9. }   

其中pageInfo.getPageNum()为当前页号(从1开始);pageInfo.getPageSize()为每页行数;indexKey为表中索引列,通常为递增的主键。

第二种方式:
pagesize: 每页显示记录数
cureentpage:当前页数

  1. select * from (   select TOP pagesize * FROM ( SELECT TOP pagesize*cureentpage   * from user_table   ORDER BY id ASC ) as aSysTable   ORDER BY id DESC ) as bSysTable   ORDER BY id ASC   

以上就是利用top构造Sql Server分页查询的方法。

 

 

【编辑推荐】

sql server分页的两种方法比较

SQL SERVER分区视图

SQL中的分析函数

创建SQL函数的实例

SQL中返回计算表达式的函数

责任编辑:段燃 来源: 互联网
相关推荐

2010-11-10 15:23:55

SQL SERVER

2010-10-21 11:44:55

SQL Server分

2011-08-19 09:30:42

分页查询SQL ServerMySQL

2010-09-26 15:29:13

sql查询分页

2010-11-09 13:09:58

SQL Server分

2018-12-25 16:30:15

SQL Server高效分页数据库

2009-07-15 17:00:49

JDBC查询

2010-11-11 14:36:11

SQL Server系

2011-03-24 13:38:47

SQL Server 存储分页

2011-03-28 10:46:36

sql server存储分页

2010-11-25 14:33:26

MySQL查询分页

2010-11-10 15:29:40

SQL SERVER

2010-09-07 10:35:38

SQL语句

2011-08-19 10:24:46

SQL Server Top新用途

2011-06-17 17:37:16

JavaSQL Server

2010-09-14 10:47:45

sql server存

2011-04-15 11:43:24

SQL Server

2011-03-31 10:52:13

2010-10-21 10:28:13

SQL Server查

2011-03-21 13:44:38

SQL ServerSQL Server2分页
点赞
收藏

51CTO技术栈公众号