博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Row_Number 分页

Posted on 2009-11-02 16:41  yuanws  阅读(159)  评论(0编辑  收藏  举报

select  houseid,projname,city,room,hall,toilet,kitchen,buildingarea,livingarea,price,privider from (select  * ,Row_Number() OVER (ORDER BY registdate desc) as rownum from ( select top 16600 houseid ,registdate from COMMERCE_lease_BJ_mls as a (nolock) where 1=1 and city='北京' and purpose='写字楼' order by registdate desc ) a ) as b where rownum >16575 ORDER BY registdate desc

 

 

 


create PROCEDURE page
 @pageSize int=2,
 @pageIndex int=1,
 @tbName varchar(50)
 
AS
BEGIN
 declare @strSql nvarchar(4000);
 declare @strCount nvarchar(4000);
 declare @num int;
 set @strCount='select @num=count(*) from '+@tbName;
 execute sp_executesql @strCount,N'@num int output',@num output;
 set @strSql='select * from (select row_number() over(order by id desc) rowid,* from (select top '+str(@pageSize*@pageIndex)+' * from  '+@tbName+' order by id desc) a )p where p.rowid>'+str((@pageIndex-1)*@pageSize)+' order by id desc';
 exec (@strSQL)

END
GO