ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SQL 2005 使用row_number来分页

SQL 2005 使用row_number来分页

原创 Linux操作系统 作者:iSQlServer 时间:2010-02-08 15:21:27 0 删除 编辑

今天研究了一下row_number,用它来返回特定行的记录感觉是非常方便的,所以就做了个分页的存储过程,但不知道性能较之top和游标之类的那个好

 

代码
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->create procedure [dbo].[proc_TestPage]
--表名
@tablename nvarchar(255),
--排序字段
@sortcolumn nvarchar(255),
--每页记录数
@pagecount int,
--页号
@pageindex int
as
declare @beginrow int
declare @endrow int

set @beginrow=0
set @endrow=0

set @beginrow=(@pageindex-1)*@pagecount+1
set @endrow=@pageindex*@pagecount

declare @sqlstr nvarchar(4000)

set @sqlstr='with table1 as(select *,ROW_NUMBER() OVER(ORDER BY '+ @sortcolumn+' ) AS ROW'+
' FROM '+@tablename+') '
set @sqlstr=@sqlstr +' SELECT * FROM TABLE1 WHERE ROW BETWEEN '+cast(@beginrow as nvarchar )+' and '+cast(@endrow as nvarchar)

exec(@sqlstr)

使用的时候关键要注意ROW_NUMBER后面的OVER和Order BY,这个必须要有的啊,呵呵

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16436858/viewspace-627051/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-10-17

  • 博文量
    1319
  • 访问量
    2343028