作者:动态网站…
来源:动态网站制作指南
热度:
2007-6-24 10:26:08
我们先给出几种主要的分页方法和核心语句,然后直接给出结论,有兴趣的读者可以看看后面的数据 几种常用存储过程分页方法 TopN方法 select Top(@PageSize) from TableName where ID Not IN (Select Top ((@PageIndex-1)*@PageSize) ID from Table Name where .... order by ... ) where .... order by ... 临时表 declare @indextable table(id int identity(1,1),nid int,PostUserName nvarchar(50)) declare @PageLowerBound int declare @PageUpperBound int set @PageLowerBound=(@pageindex-1)*@pagesize--下限 set @PageUpperBound=@PageLowerBound+@pagesize--上限 set rowcount @PageUpperBound insert into @indextable(nid,PostUserName) select ReplyID,PostUserName from TableName order by ...... select * from TableName p,@indextable t where p.ID=t.nid and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id with cte_temp--定义零时表,PageIndex是一个计算字段,储存了搜索结果的页号 As (ceiling((Row_Number() over(order by .... )-1)/@pagesize as int) as PageIndex,* from TableName where.....)
CTE--2005新语法,类似临时表,但是生命周期稍微不同,这里只是他的一个运用
select * from cte_temp where pageindex=@pageindex-1;
我来说两句:
推荐文章
相关文章