Sql Server中,假设一个查询sql为querySql,该sql为任意条件的组合,我们把它当作子查询结果表,可利用Sql Server的top来构造通用的分页查询sql:
if (pageInfo.getPageNum() == 1) {
pagenatedSql = "select top " + pageInfo.pageSize + " * from (" + sql + ") as t1 " ;
}
else {
pagenatedSql = "select top " + pageInfo.pageSize + " * from (" + sql + ") as t1 " +
" where (t1." + indexKey + " > (select max(t3." + indexKey + ")" +
" from (select top " + (pageInfo.pageNum - 1) * pageInfo.pageSize + " t2." + indexKey + " from (" + sql + ") as t2 order by t2." + indexKey + ") as t3" +
" )) order by t1." + indexKey;
}
其中pageInfo.getPageNum()为当前页号(从1开始);pageInfo.getPageSize()为每页行数;indexKey为表中索引列,通常为递增的主键。
第二种方式:
pagesize: 每页显示记录数
cureentpage:当前页数
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
分享到:
相关推荐
分页查询通常需要编写SQL语句,利用`TOP`(在SQLServer中)或其他类似关键字来限制返回的记录数,配合`ORDER BY`进行排序。 **分页实现** 在SSH框架下实现分页,通常会涉及到以下几个步骤: 1. **前端页面**:...
最后,关于`asp分页通用类.txt`这个文件,它可能包含了具体的分页类实现代码,包括如何构造SQL语句、生成分页链接的逻辑,以及可能的优化策略,比如缓存页码和数据,以减少对数据库的多次访问。阅读和理解这个文件的...
SQL Server 2000/2005提供了多种分页方法,其中一种常见的是使用`TOP`和子查询: 方法1: ```sql SELECT TOP 页大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) ...
6. **参数传递**:当用户点击分页链接时,需要将当前页数作为参数传递回服务器,以便函数能够正确地构造新的查询。 7. **优化**:为了提高性能,可能需要考虑缓存查询结果,或者采用存储过程来减少服务器的负载。 ...
- **动态SQL构造**:根据`@OrderType`动态选择升序或降序,并根据`@PageIndex`和`@PageSize`计算出子查询的TOP数量,从而实现分页效果。 - **性能优化**:通过子查询先筛选出当前页所需的范围,再进行排序和取TOP...
SQL Server使用TOP子句结合ORDER BY子句来实现分页。具体实现如下: ```sql SELECT * FROM (SELECT TOP 页面容量 FROM (SELECT TOP 页面容量*当前页码 FROM 表 WHERE 条件 ORDER BY 字段A) AS temptable1 ORDER BY ...
分页通常分为两种主要方式:分批查询和一次查询。分批查询适用于大数据量的情况,它只获取用户当前需要的数据,减少内存占用和网络传输成本。一次查询则适合并发用户多的场景,虽然可能一次性加载较多数据,但可以...
SQL Server提供了多种分页方式。第一种是利用`NOT IN`和`SELECT TOP`,例如: ```sql SELECT TOP 10 * FROM TestTable WHERE (ID NOT IN (SELECT TOP 20 id FROM TestTable ORDER BY id)) ORDER BY ID ``` 第二种...
这通常涉及到SQL查询中的LIMIT或OFFSET关键字,或者在某些数据库系统中,如SQL Server,使用TOP和SKIP来实现。 在这个实例中,ASP分页类可能包含以下几个关键组件: 1. **参数设置**:包括每页显示的记录数、当前...
- **主要内容**:本文档提供了一个SQL Server中的高效分页存储过程实现方式,旨在通过优化查询逻辑来提升分页功能的执行效率。 #### 描述:存储过程与页面调用示例 - **存储过程定义**: - `CREATE PROCEDURE ...
例如,Oracle使用`ROWNUM`进行分页,而SQL Server则使用`TOP`和`ORDER BY`。我们可以通过一个配置参数或条件判断来选择合适的SQL构造方式。 总结来说,Java反射和泛型的结合使得数据库操作更加灵活和高效,降低了...
"C# 万能查询程序示例"是指利用C#语言编写的一个通用查询工具,它可以处理各种数据源,如数据库、XML文件或者自定义的数据结构,帮助开发者快速、灵活地进行数据查询和分析。以下将详细介绍C#实现万能查询程序的相关...
2. **自定义SQL标签**:SQL查询的构造直接影响系统性能。比如,避免使用`Select *`,而是选择性地选取所需字段,同时优化排序和条件。例如,对比`Select * from ks_article where tid in('栏目ID') order by id desc...
07 通过form向server端发送数据 08 form表单之select标签 09 table标签 第38章 01 css的四种引入方式 02 css的四种基本选择器 03 css的组合选择器 04 css的属性选择器 05 css的伪类 06 css的选择器优先级 07 css的...