SQL分页的几种方法

作者: 飞天猪Pony | 来源:发表于2020-01-02 17:29 被阅读0次

方法一 使用offset fetch next(2012版本及以上版本才可以使用)

注:参数 @pageIndex 代表页数;@pageSize 代表每页的数据条数
select * from [表名] 
offset ((@pageIndex - 1) * @pageSize) rows
fetch next @pageSize rows only

--------------------------------------------------------------------------------------
例如:获取第2页的数据,每页10条数据
select * from [dbo].[Student] 
offset ((2 - 1) * 10) rows
fetch next 10 rows only

方法二 使用row_number()函数
利用row_number() over(order by id desc)函数计算出行数,选定相应的行数返回即可(2005版本以上才可以使用)

select top @pageSize * 
from (select row_number() over (order by id desc) as rownumber, * from [表名]) as T
where rownumber > (@pageIndex - 1) * @pageSize
--------------------------------------------------------------------------------------
例如:获取第2页的数据,每页10条数据
select top 10 *
from (select row_number() over (order by id desc) as rownumber, * from [dbo].[Student]) as T
where rownumber > (2 - 1) * 10

使用存储过程封装

create procedure paging_proc
(
    @pageIndex int, --页数
    @pageSize int, --每页的数量
)
as 
begin
  select top @pageSize 
  * from (select row_number() over(order by ID desc) as rownumber,
  * from [表名] ) as T
  where rownumber > (@pageIndex - 1) * @pageSize
end

--测试执行存储过程的方法
exec paging_proc @pageIndex=2,@pageSize=10

相关文章

  • SQL分页的几种方法

    方法一 使用offset fetch next(2012版本及以上版本才可以使用) 方法二 使用row_numbe...

  • 分页的几种实现方式

    一:分页的几种实现方式 1.1:手动实现一个分页 1.2通过 sql语句 实现分页 1.3...

  • 分页查询

    分页查询使用Mybatis,SQL写法 Service层方法

  • SpringBoot -- 分页查询

    分页查询 在controller中添加新方法 分页查询 在mapper中写对应方法的sql 改进: 加上统计表内元...

  • 分页SQL

    分页 rownum,rowid 分页SQL

  • 日常总结-分页、模糊搜索通配符

    一、分页几种分页方法1、分页插件pom依赖 2、数据库中查询数据直接分页需要注意的是前端传的起始页是从0开始的,否...

  • SQL server 分页实现

    分页实现:Offset-Fetch 分页实现的方法又多了一种,在SQL Server 2012版本中,TSQL在O...

  • SQL Server OFFSET 分页存储过程

    SQL Server OFFSET 分页存储过程 普通sql

  • 记一次诡异的分页现象

    现象: 在使用过程种发现在一个不希望分页的情况,有时候分页有时候不分页,sql种也并未分页。最终发现在一个方法中调...

  • mybatis分页

    一、sql语句分页: 在mapper.xml文件添加sql语句 在接口中添加方法: 在测试类中添加: 二、RowB...

网友评论

    本文标题:SQL分页的几种方法

    本文链接:https://www.haomeiwen.com/subject/knyooctx.html