武汉网站设计

当前位置:首 页> 网站开发 > 网站设计

三种SQL分页法

发布日期:2013-05-21 作者:营销型网站建设 点击:

表中主键必须为标识列,[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分页法由湖北武汉企盟互联编辑:http://www.ceomoo.com/newslist/26/726.html

武汉网站建设公司企盟互联建站经验丰富,十一年专注于武汉网站建设服务,提供网站建设,网站优化营销型网站制作,设计师量身打造品牌风格,为广大企业网站建设,告诉您做手机网站制作费用多少钱,同时提供网站改版和网站维护,专业做事,实在做人!全国客户服务热线:400-027-1280 13986190356

在线客服