一、使用 top 分页
语法:select top(每页数据条数) * from 表名
where id not in(select top ((当前页码-1)*每页数据条数) id from 表名)
1.查到当前页码之前的所有数据id
select top ((当前页码-1)*每页数据条数) id from 表名
2.查询一页需要的数据条数,但是不包含当前页码之前的id的数据
select top(每页数据条数) * from 表名
where id not in(select top ((当前页码-1)*每页数据条数) id from 表名)
declare @PageSize int = 3 --每页显示数据条数
declare @PageIndex int = 2 --当前页码
select top(@PageSize) * from studentchengji
where id not in (select top((@PageIndex-1)*@PageSize) id from studentchengji)
二、使用row_number分页
语法:select * from (select ROW_NUMBER() over(order by id) 序号别名,* from 表名) 表别名
where 序号别名 between x and y
1.使用row_number()函数给所有数据定义一列序号
select ROW_NUMBER() over(order by id) 序号别名,* from 表名
2.根据之前定义的一列序号,计算出当前页是 第x 到 y条 数据
select * from (select ROW_NUMBER() over(order by id) RowID,* from studentchengji) A
where RowID between ((@PageIndex-1)*@PageSize+1) and (@PageIndex*@PageSize)
declare @PageSize int =3 --每页显示数据条数
declare @PageIndex int =1 --当前页码
select * from (select ROW_NUMBER() over(order by id) RowID,* from studentchengji) A
where RowID between ((@PageIndex-1)*@PageSize+1) and (@PageIndex*@PageSize)