用SQL 2005的ROW_NUMBER() 实现分页功能
2010-04-29 15:29
701 查看
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传入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 min’ set @strOrder = ’ order by ’ + @fldName +’ desc’ --如果@OrderType不是,就执行降序,这句很重要! end else 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 数据大全,www.sql163.com 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
相关文章推荐
- SQL 2005的ROW_NUMBER()实现分页的功能
- 用SQL 2005的ROW_NUMBER() 实现分页功能
- SQL 2005的ROW_NUMBER()实现分页功能
- SQL2005利用ROW_NUMBER() OVER实现分页功能
- 用SQL 2005的ROW_NUMBER() 实现分页功能
- 用SQL 2005的ROW_NUMBER() 实现分页功能
- SQL 2005的ROW_NUMBER()实现分页功能
- SQL 2005的ROW_NUMBER()实现分页功能(转载)
- ROW_NUMBER SQL Server 2005的LIMIT功能实现(ROW_NUMBER()排序函数)
- SQL2005新函数ROW_NUMBER()实现分页
- C#拼接SQL语句,SQL Server 2005+,多行多列大数据量情况下,使用ROW_NUMBER实现的高效分页排序
- SQL 2005-2008 存储过程分页程序 ROW_NUMBER()
- LINQ to SQL 模拟实现 ROW_NUMBER() OVER(ORDER BY ...) 的功能
- Sql Server 2005 ROW_NUMBER 函数实现分页
- Sql server 2005 利用row_number() 函数实现分页
- ACCESS的分页之道,Access中实现row_number() over()聚合函数功能
- Sql Server 2005 ROW_NUMBER 函数实现分页
- SQL2005利用ROW_NUMER实现分页的两种常用方式
- sql2005 分页 ROW_NUMBER()