欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用row_number()实现分页实例

程序员文章站 2023-11-04 21:34:16
复制代码 代码如下: create procedure p_news @pagesize int,@pageindex int as begin select * from...
复制代码 代码如下:

create procedure p_news
@pagesize int,@pageindex int
as
begin
select * from(
select *,row_number() over(order by id) as [$row_num] from news
--where [$row_num]<=3 这个时候行号不能用,必须全部执行完毕以后才会产生
)as _temp where [$row_num] between (@pageindex*pagesize+1) and (@pageindex+1)*@pagesize
end
--注意参数的设置,java调用时 string sql="{call p_news(?,?)}"
--select row_number() over(order by id) rn,* from news where id id>3 给最终的结果编一个号,一个连续的号
--order by必须写在括号里面,因为写在from news 后面会报 sql的错误:除非另外还指定了 top 或 for xml,否则,order by 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。