有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活。最近整理了下以下几种查询分页方式:
方法1:
适用于 SQL Server 2000/2005
SELECT TOP 页大小 *
FROM table1
WHERE id NOT IN
(
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
)
ORDER BY id
方法2:
适用于 SQL Server 2000/2005
SELECT TOP 页大小 *
select * from table1 where id in(
select top 页大小 id from table1 where id not in
(
select top 页大小*(页数-1) id from table1 ORDER BY id
)
)
ORDER BY id
方法3:
适用于 SQL Server 2000/2005
SELECT TOP 页大小 *
FROM table1
WHERE id >
(
SELECT ISNULL(MAX(id),0)
FROM
(
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
) A
)
ORDER BY id
方法4:
适用于 SQL Server 2005
SELECT TOP 页大小 *
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1
) A
WHERE RowNumber > 页大小*(页数-1)
说明,页大小:每页的行数;页数:第几页。使用时,请把“页大小”和“页大小*(页数-1)”替换成数字。
分享到:
相关推荐
Sql Server 2000/2005 JDBC可用于Sql Server 2000也可用于Sql Server 2005,是以Sql Server 为后台数据库的JAVA开发者的必备软件包。
SQLServer2000/2005/2008+MySQL5.0的数据库驱动包
灵活方便的自动附加数据库工具,配置Config.ini文件即可自动附加MS SQL Server 2000/2005/2008
SQL Server 2000/2005 数据字典生成器
SQL Server 2000/2005如何更改数据库文件的物理文件名
本资源包含了SQL server2000/2005,mySQL,oracal,等数据库存JDBC架包,是开发数据库系统时有了它一不用你到处去下载了!
sqlserver 2000/2008 jar包
使用SQL Server2005客户端远程连接 sql server 2000、sql server 2000服务器的解决方案,按照步骤解决问题
十分好用的sql server profiler 事件跟踪器
支持jdbc3.0,内附帮助
同一平台上完成不同数据库驱动程序上的所有数据访问、操作等 新建数据库表处理 全方位熟悉数据驱动程序、数据库处理、sql实现等 MySQL SQL Server(2000、2005) C#
Xampp1.7 链SQLServer2005/SQLServer2008,配置与测试; 扩展库 sqlserver driver for php
关于SQL Server SQL语句查询分页数据的解决方案
本人目前在做Java开发 在网上下载了好几个jdbc驱动,问题很多 现在对jdbc驱动进行总结: sqlserver2005/sqlserver2008 jdbc驱动 希望对有这方面需求的人提供帮助。
SQLServer2008/2005驱动一分下载
SQLSERVER数据库中使用发布与订阅方式进行数据同步,使用所有的SQLSERVER数据库,从SQLSERVER2000到SQLSERVER2005/SQLSERVER2008/SQLSERVER2008R2
程序中有SQL SERVER 2000、SQL SERVER 2005、ORACLE 10g的jdbc连接数据库的例子,以及对应驱动包的的说明(在lib路径下)。
主要用于弥补sqlserver2005/2000生成脚本无法连带生成表内数据的短板,一键生成脚本,解决了编写大量繁琐的执行语句的问题。
酒店管理系统,连接SQLServer 数据库 C++/Qt酒店管理系统,连接SQLServer 数据库 C++/Qt酒店管理系统,连接SQLServer 数据库 C++/Qt酒店管理系统,连接SQLServer 数据库 C++/Qt酒店管理系统,连接SQLServer 数据库 ...
里有msicuu2.exe,srvinstw.exe,前者是微软的卸载工具,后者是加载或卸载服务...以sql2005为例:先用msicuu2.exe卸载所有的sqlserver2005的应用程序,再卸载其服务,在用第三方软件清空注册表即可(我用的是优化大师)。