All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
PHP新手总结的PHP基础知识_php资料_编程技术
PHP函数学习之PHP函数点评_php资料_编程技术
Asp.Net的控件如何与Server交互_.net资料_编程技术
ASP.NET技巧:在存储过程中实现分页_.net资料_编程技术
浅谈PHP开发团队管理及程序员做人问题_php资料_编程技术
C#编程中的,New,关键词的几种用法_[Asp.Net教程]
如何在ASP.NET,2.0中使用,Web,Parts_.net资料_编程技术
ASP.NET2.0中配置文件的加密与解密_[Asp.Net教程]
用php实现广告轮播_php资料_编程技术
Asp.net中多彩下拉框的实现_[Asp.Net教程]
Reading number is top 10 pictures
沙漠里的美女
云南大理的美女
狗狗与主人神同步2
The beginning and end
壮丽的云彩1
Sora aoi mirror memorial classics2
这才是真正的人体艺术2
运动的范冰冰2
这才是真正的人体艺术4
Wear bikinis cock
Download software ranking
双旗镇刀客B
实战黑客不求人
超级战舰
小黑猫大战两米大花蛇
Eclipse 4.2.2 For Win64
Sora aoi's film--cangkong_Blue.Sky
圣殿祭司的ASP.NET.2.0.开发详解-使用C#
Ashlynn Video2
Unix video tutorial19
Kung fu panda - the secret of the teacher
归海一刀 published in(发表于) 2014/2/1 0:22:49 Edit(编辑)
用SQL实现分页的三种方法_[SQL,Server教程]

用SQL实现分页的三种方法_[SQL,Server教程]

用SQL实现分页的三种方法_[SQL Server教程]

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

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

语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 20 id
FROM TestTable
ORDER BY id))
ORDER BY ID


SELECT TOP 页大小 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id))
ORDER BY ID
2.分页方案二:(利用ID大于多少和SELECT TOP分页)

语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 20 id
FROM TestTable
ORDER BY id) AS T))
ORDER BY ID


SELECT TOP 页大小 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id) AS T))
ORDER BY 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

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

通过SQL 查询分析器,显示比较:我的结论是:
分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
分页方案一:(利用Not In和SELECT TOP分页) 效率次之,需要拼接SQL语句
分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.