--第一种分页:sqlserver 2000-sqlserver2005
--假设:每页显示5条, 当前页:1 则查询1-5
--不等于前5条的前5条
select top 5 * from Student
where StuNo not in(select top 5 StuNo from Student)
--第二种分页查询: sqlserver 2008-sqlserver2012
select * from Student
-- row_number()over() 组合函数,给查询结果创建行号 (伪列)
declare
@pageIndex int=1,@pageSize int =5,---用户参数,定义页码和每页数量
@startIndex int,@endIndex int--查询参数
set @startIndex=(@pageIndex-1)*@pageSize+1 --开始位置
set @endIndex=@pageIndex*@pageSize --结束位置
select * from
(
select ROW_NUMBER()over(order by StuNo asc) id,* from Student
)Student
where id between @startIndex and @endIndex
--第三种分页查询: sqlserver 2012-sqlserver2021 (最新-推荐使用)
select * from Student
---查询筛选:offset 1 rows 从多少开始
--- fetch next 5 选择多少条数据
--- rows only
declare ---用户参数
@pageIndex3 int=1,---定义页码
@pageSize3 int =5,---定义每页数量
@startIndex3 int --查询参数
set @startIndex3=(@pageIndex3 -1)*@pageSize3 --计算开始位置文章来源:https://www.toymoban.com/news/detail-412202.html
select * from Student
order by StuNo asc
offset @startIndex3 rows
fetch next @pageSize3
row only
文章来源地址https://www.toymoban.com/news/detail-412202.html
到了这里,关于Sqlserver 数据库分页查询(三种方式)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!