SqlServer分页
来源:互联网 发布:将sql表连接起来 编辑:程序博客网 时间:2024/05/16 23:59
今天看到guguda2008博客中的关于sqlserver分页的分析,总结下分页吧
use mastergoset nocount ongoset showplan_text ongo
--2012的OFFSET分页方式select number from spt_valueswhere type='p'order by number offset 10 rows fetch next 5 rows only;go
--2005的ROW_NUMBER分页方式select number from (select number,row_number() over(order by number) as num from spt_values where type='p') t where num between 11 and 15order by number ascgo
--2000的TOP分页方式select number from (select top 5 number from (select top 15 number from spt_values where type='p' order by number asc) torder by number desc) t order by number ascgoset showplan_text offgo
转载自:http://blog.csdn.net/guguda2008/article/details/7370398
其他还有几种分页方式,如下:
1.分页方案一:(利用Not In和SELECT TOP分页)
语句形式:
SELECT TOP 页记录数量 *
FROM 表名
WHERE (ID NOT IN
(SELECT TOP (每页行数*(页数-1)) ID
FROM 表名
ORDER BY ID))
ORDER BY ID
//自己还可以加上一些查询条件
例:
select top 2 *
from Sys_Material_Type
where (MT_ID not in
(select top (2*(3-1)) MT_ID from Sys_Material_Type order by MT_ID))
order by MT_ID
2.分页方案二:(利用ID大于多少和SELECT TOP分页)
语句形式:
SELECT TOP 每页记录数量 *
FROM 表名
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 每页行数*页数 id FROM 表
ORDER BY id) AS T)
)
ORDER BY ID
例:
SELECT TOP 2 *
FROM Sys_Material_Type
WHERE (MT_ID >
(SELECT MAX(MT_ID)
FROM (SELECT TOP (2*(3-1)) MT_ID
FROM Sys_Material_Type
ORDER BY MT_ID) AS T))
ORDER BY MT_ID
3.分页方案三:(利用SQL的游标存储过程分页)
create procedure SqlPager
@sqlstr nvarchar(4000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数
as
set nocount on
declare @P1 int, --P1是游标的id
@rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1, @rowcount=@rowcount output
select ceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
exec sp_cursorclose @P1
set nocount off
参考自:http://topic.csdn.net/u/20100203/17/8f916471-597d-481a-b170-83bcefe3b199.html
- SQLserver分页
- sqlserver分页
- sqlserver分页
- SQLSERVER 分页
- SQLServer分页
- sqlserver分页
- sqlserver 分页
- SqlServer分页
- sqlserver分页
- sqlserver 分页
- sqlserver 分页
- sqlserver 分页
- SqlServer分页
- sqlserver分页
- sqlserver分页
- sqlserver 分页
- SQLServer分页
- 数据库--sqlserver-- sqlserver分页sql
- labeled graph---some basic knowledge
- Maven:完整参考手册--1.2 约定优于配置
- Tomcat自动启动后台任务
- SDIO WiFi模块分析
- 暂未完成的扫雷逻辑
- SqlServer分页
- apache mina 学习(十四)-----与spring整合
- Android 开发之 ---- bootloader (LK)
- Spring--quartz中cronExpression配置说明
- 如何将Object类型转化为int类型
- 根据url下载一张大小为1M左右的图片,然后用个ImageView显示出来。不爆内存的哦!!!
- CSS实现背景透明,文字不透明(兼容各浏览器)
- MAVEN创建WEB应用
- Delphi 的消息机制浅探 - Delphi编程