您的位置:首页 > 数据库

运用SQL2005以上特有的ROW_NUMBER() 进行分页

2012-06-08 14:26 519 查看
CREATE PROCEDURE [dbo].[ShowPage1]

@tblName varchar(255), -- 表名

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

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

@PageSize int, -- 页尺寸

@PageIndex int, -- 页码

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

AS

declare @strSQL varchar(5000)

if @strWhere !=''

set @strWhere= 'where'+@strWhere

set @strSQL='Select'+@strGetFields+'FROM'+'+(Select ROW_NUMBER() OVER (+'+@strOrder+') AS pos,'+@strGetFields+' FROM ['+@tblName+']'+@strWhere+') AS sp Where pos BETWEEN str(('+@PageIndex+'-1)*'+@PageSize+'+1)
AND str('+@PageIndex+'*'+@PageSize+')'

exec (@strSQL)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: