用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > sqlserver教程

SQL 2005的ROW_NUMBER()实现分页功能

时间:2014-11-30  来源:互联网  作者:佚名

DECLARE @pagenum AS INT, @pagesize AS INT

SET @pagenum = 2

SET @pagesize = 3

SELECT *

FROM (SELECT ROW_NUMBER() OVER(ORDER BY newsid DESC) AS rownum,

newsid, topic, ntime, hits

FROM news) AS D

WHERE rownum BETWEEN (@pagenum-1)*@pagesize+1 AND @pagenum*@pagesize

ORDER BY newsid DESC

aspx里面只需给SQL(SQL Server培训 mySQL培训 )传入pageid和条数即可。

CSDN上还有个存储过程实现分页的代码:

ALTER PROCEDURE news_Showlist

(

@tblName varchar(255), -- 表名

@strGetFields varchar(1000), -- 需要返回的列

@fldName varchar(255), -- 排序的字段名

@PageSize int , -- 页尺寸

@PageIndex int , -- 页码

@strWhere varchar(1500), -- 查询条件(注意: 不要加where)

@Sort varchar(255) --排序的方法

)

AS

declare @strSQL varchar(5000) -- 主语句

declare @strTmp varchar(110) -- 临时变量

declare @strOrder varchar(400) -- 排序类型

if @Sort = 'desc'

begin

set @strTmp = '(select max'

set @strOrder = ' order by ' + @fldName +' asc'

end

if @PageIndex = 1

begin

if @strWhere != ''

begin

set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ' + @tblName

+ ' where ' + @strWhere + ' ' + @strOrder

end

else

begin

set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '+ @tblName

+ ' '+ @strOrder

end

--如果是第一页就执行以上代码,这样会加快执行速度

end

else

begin

--以下代码赋予了@strSQL以真正执行的SQL代码

set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '

+ @tblName + ' where ' + @fldName + '' + @strTmp + '('+ @fldName + ') from

(select top ' + str((@PageIndex-1)*@PageSize) + ' '+ @fldName + ' from '

+ @tblName + '' + @strOrder + ') as tblTmp)'+ @strOrder

if @strWhere != ''

set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '

+ @tblName + ' where ' + @fldName + '' + @strTmp + '('+ @fldName + ') from

(select top ' + str((@PageIndex-1)*@PageSize) + ' '+ @fldName + ' from '

+ @tblName + ' where ' + @strWhere + ' '+ @strOrder + ') as tblTmp)

and ' + @strWhere + ' ' + @strOrder

end

exec (@strSQL)

RETURN

(T114)

来顶一下
返回首页
返回首页
推荐资讯
从零开始学ASP.NET-基础篇第1/7页 从零开始学ASP.NET-基础篇第1/7页第一天 学习目的: 掌握最基本的Label、TextBox、Button控件
ASP.NET入门数据篇 ASP.NET入门数据篇对于网站编程的初学者来说,总是会上网找些源码来看,但久而
相关文章
栏目更新
栏目热门