博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 分页语句
阅读量:6540 次
发布时间:2019-06-24

本文共 1100 字,大约阅读时间需要 3 分钟。

表中主键必须为标识列,[ID] int IDENTITY (1,1)

1.分页方案一:(利用Not In和SELECT TOP分页)

SELECT TOP 页大小 *FROM TestTableWHERE (ID NOT IN          (SELECT TOP (页大小*(页数-1)) id         FROM 表         ORDER BY id))ORDER BY ID

2.分页方案二:(利用ID大于多少和SELECT TOP分页)

SELECT TOP 页大小 *FROM TestTableWHERE (ID >          (SELECT MAX(id)         FROM (SELECT TOP (页大小*(页数-1)) id                 FROM 表                 ORDER BY id) AS T))ORDER BY ID

3.分页方案三:(利用SQL的游标存储过程分页)

create  procedure SqlPager@sqlstr nvarchar(4000), --查询字符串@currentpage int, --第N页@pagesize int --每页行数asset nocount ondeclare @P1 int, --P1是游标的id @rowcount intexec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1, @rowcount=@rowcount outputselect ceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页 set @currentpage=(@currentpage-1)*@pagesize+1exec sp_cursorfetch @P1,16,@currentpage,@pagesize exec sp_cursorclose @P1set nocount off

其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。 建议优化的时候,加上主键和索引,查询效率会提高。

通过SQL 查询分析器,显示比较:我的结论是:

分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句

分页方案一:(利用Not In和SELECT TOP分页)   效率次之,需要拼接SQL语句

分页方案三:(利用SQL的游标存储过程分页)    效率最差

转载地址:http://uysdo.baihongyu.com/

你可能感兴趣的文章
php base64_encode,serialize对于存入数据表中字段的数据处理方案
查看>>
发行版Linux和麒麟操作系统下netperf 网络性能测试
查看>>
《增长黑客》—— 读后总结
查看>>
shell的特殊符号的表示
查看>>
hdu Constructing Roads (最小生成树)
查看>>
外感身痛腹瀉案
查看>>
Mysql的大小写敏感性
查看>>
MVC杂记<->---路由
查看>>
原创高端影楼人像专业磨皮法教程详解 附PSD源码
查看>>
【设计模式】设计模式C++编程实现之观察者模式(ObserverPattern)
查看>>
X Shell 4配色方案[Solarized Dark]
查看>>
onInterceptTouchEvent和onTouchEvent调用时序
查看>>
何时启用单元测试
查看>>
eclipse中Ruby环境搭建
查看>>
网站统计中的数据收集原理及实现
查看>>
[Entity Framework] MySQL @ Entity Framework 6
查看>>
Access 64-bit HKLM\Software Registry by 32-bit C#.NET Application
查看>>
jQuery AJAX实现调用页面后台方法
查看>>
【高级算法】模拟退火算法解决3SAT问题(C++实现)
查看>>
win8.1 64位环境搭建android开发环境
查看>>