转:有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活。先看看单条 SQL 语句的分页 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 页大小 *
FROM table1
WHERE id >
(
SELECT ISNULL(MAX(id),0)
FROM
(
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
) A
)
ORDER BY id
方法3:
适用于 SQL Server 2005
SELECT TOP 页大小 *
FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1
) A
WHERE RowNumber > 页大小*(页数-1)
说明,页大小:每页的行数;页数:第几页。使用时,请把“页大小”和“页大小*(页数-1)”替换成数字。
其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。
建议优化的时候,加上主键和索引,查询效率会提高。
通过SQL 查询分析器,显示比较:我的结论是:
分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
分页方案一:(利用Not In和SELECT TOP分页) 效率次之,需要拼接SQL语句
分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用
分享到:
相关推荐
sqlserver分页查询语句;sqlserver分页查询语句;sqlserver分页查询语句;
SqlServer数据库中的分页语句,SqlServer分页SQL语句特点:一次查询,数据库只返回一页的数据。而不是取出所有的数据。
关于SQL Server SQL语句查询分页数据的解决方案
SQL分页语句 有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活。先看看单条 ...
用SQL实现分页显示
SQL server2008中通用分页存储过程,表名,每页长度,页码都是动态赋值。
sql server 分页大全, 分页存储过程,分页TSQL , 分页语法,语句! 最全的SQL Server2000 分页方法。 可放心下载
sql server2005 分页查询语句
sqlserver 分页调用的存储过程 t-sql 语句
简易的sqlserver分页功能,只需要将页码传入即可,默认id倒序排列,一页十条,也可以通过传入不同参数,对不同字段,进行正序或倒序排列。 使用方法:1、将该类导入实体类包中 2、在需要分页的地方创建该类对象,并...
SQL Server 存储过程及Oracle SQL语句分页
通用的存储过程sql分页查询语句,节约您的时间....
几条常见的数据库分页SQL 语句,针对oracle,sqlserver,mysql三种常见数据库的分页显示。
1.只需要提供Sql语句和每页的记录数,页数就可以了 2,速度超快哟,100W记录1~3秒就分出来了 3,对于存储过程特别好用
sql server数据库中分页的存储过程,参数中比较灵活,如果首页传1,非首页传其他。
资源分已经降到最低,方便孩子们下载,这个demo是SQL Server的分页demo,,功能非常强大,代码简单(涉及jquery),希望该demo可以帮助广大爱学习的孩童们,,么么哒!其中demo里面的数据库配置,以及sql表,语句等,...
NULL 博文链接:https://baobeituping.iteye.com/blog/2159496
这是我写的一个关于SQL,显示数据库资料进行分页的一个简单说明。
熟练使用T-SQL实现加约束 掌握T-SQL编程,实现功能强大...1.SQLServer分页语句 String sql="select top "+lineSize+" * from student where id not in (select top "+(currentPage-1)*lineSize+" id from student)";
这里只是总结了MySQL,SQL Server,Oracle分页语句。供大家参考