Sqlserver 数据库分页查询(三种方式)
--第一种分页: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 --计算开始位置
select * from Student
 order by StuNo asc
 offset @startIndex3 rows
 fetch next @pageSize3
 row only