sqlServer如何实现分页查询

一、利用max(主键)

公式:
-- 分页查询公式-利用max(主键)

select top @pageSize * 
from 表名 

where 主键>=
(select max(主键) 
from (

select top ((@pageIndex-1)*@pageSize+1) 主键
 from 表名
order by  主键 asc) temp_max_ids) 

order by 主键;


二、利用row_number关键字(适用于SQL Server 2005或更高版本)
这种方式也是比较常用的,直接利用row_number() over(order by id)函数计算出行数,选定相应行数返回即可。
公式:

-- 分页查询公式-row_number()

select * 
from (  
-- rownumber是行号别名    
select top (@pageIndex*@pageSize) row_number() over(order by 主键 asc) 
    as rownumber,* 
    from 表名) temp_rows
where rownumber>(@pageIndex-1)*@pageSize;


三、offset /fetch next关键字(适用于SQL Server 2012或更高版本)
公式:
-- 分页查询公式-offset /fetch next
select * from 表名

order by 主键或其他索引列 

-- @pageIndex:页码、@pageSize:每页记录数

offset ((@pageIndex-1)*@pageSize) rows
fetch next @pageSize rows only;
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值