分类目录

链接

2012 年 12 月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

近期文章

热门标签

新人福利,免费薅羊毛

现在位置:    首页 > SQL Server > 正文
ROW_NUMBER分页
SQL Server 暂无评论 阅读(2,301)
  1.  
  2. --提取分页数据,返回总记录数
  3. create procedure  Proc_GetDataPaging_ReturnDataCount
  4. (
  5.  @SqlString varchar(6000), --查询语句
  6.  @PageNumber int, --当前的页码
  7.  @PageSize int, --每页显示的数据量
  8.  @SequenceField varchar(100), --排序字段
  9.  @DataCount int out --总数据量
  10. )
  11. as
  12. begin
  13. --提取总记录数
  14. declare @Sql nvarchar(2000)
  15. set @Sql = N'select @countNum = count(1) from ('+ @SqlString+') as a'
  16. exec sp_executesql @Sql,N'@countNum int out',@DataCount out
  17.  
  18.  
  19. declare @BNum int
  20. declare @ENum int
  21.  
  22. set @BNum = (@PageNumber-1)*@PageSize+1
  23. set @ENum = @PageNumber*@PageSize
  24.  
  25. set @SqlString = substring(@SqlString,charindex('select',@SqlString)+6,len(@SqlString))
  26. set @SqlString = 'SELECT  *  FROM (SELECT ROW_NUMBER()  OVER  ( ORDER BY '
  27. +@SequenceField+' )  AS RowNumber ,'+@SqlString +' ) as pageinga123
  28. WHERE RowNumber BETWEEN  '+convert(varchar(10),@BNum)+' AND '
  29. +convert(varchar(10),@ENum)+' ORDER BY RowNumber '
  30. print @SqlString
  31. exec(@SqlString)
  32.  
  33. end

 

============ 欢迎各位老板打赏~ ===========

本文版权归Bruce's Blog所有,转载引用请完整注明以下信息:
本文作者:Bruce
本文地址:ROW_NUMBER分页 | Bruce's Blog

发表评论

留言无头像?