您的位置:首页 > 数据库

SQL row_number() over实现分页功能

2017-01-18 09:22 441 查看
if (exists (select * from sys.objects where name = 'f_newspage'))
drop proc f_newspage
go
CREATE PROCEDURE [f_newspage]  
(   
    @sqlstr nvarchar(200),  
    @pageIndex  int,
    @pageSize int  
)  
as
if @sqlstr is not null
begin
select * from
(select *,row_number() over(order by news_id asc) as newsid from t_news where @sqlstr = SUBSTRING(@sqlstr,5,4000)) as temp
where newsid between @pageSize*(@pageIndex-1)+1 and @pageSize*@pageIndex
return
end
if @sqlstr is null
begin
select * from
(select *,row_number() over(order by news_id asc) as newsid from t_news) as temp
where newsid between @pageSize*(@pageIndex-1)+1 and @pageSize*@pageIndex
return
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: