复制代码 代码如下:
 
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 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。 
                            
                            
                                您可能感兴趣的文章:- sqlserver 通用存储过程分页代码(附使用ROW_NUMBER()和不使用ROW_NUMBER()两种情况性能分析)
 - 一个基于ROW_NUMBER()的通用分页存储过程代码
 - sqlserver2005使用row_number() over分页的实现方法
 - Oracle row_number() over()解析函数高效实现分页
 - C#拼接SQL语句 用ROW_NUMBER实现的高效分页排序
 - SQL2005利用ROW_NUMBER() OVER实现分页功能
 - 高效的SQLSERVER分页查询(推荐)
 - 解析数据库分页的两种方法对比(row_number()over()和top的对比)
 - SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同
 - SQL Server使用row_number分页的实现方法