一、语法
方案一:使用top分页
select top 页码大小 查询字段
from 表名
where 主键 not in (select top (页码大小 * 当前页(以0开始))查询字段
from 表名)
方案二:使用row_number分页
select 查询字段
from (select ROW_NUMBER() over(order by 主键) 别名1 ,查询字段 from 表名)别名2
where 别名1 between X and Y
二、示例
方案一:使用top分页
declare @PageSize int = 10 --页码大小变量
declare @PageIndex int = 1 --当前页码变量
select top(@PageSize) * from Student
where SId not in (select top((@PageIndex)*@PageSize) SId from tblStudent)
方案二:使用row_number分页
declare @PageSize int = 5
declare @PageIndex int = 1
select * from (select ROW_NUMBER() over(order by SId) RowId,Student.* from tblStudent) A
where RowId between (@PageIndex*@PageSize+1) and (@PageIndex*@PageSize)
本文探讨了两种常见的数据库分页方法,包括使用SQL的TOP限制和ROW_NUMBER函数,通过实例说明如何在实际项目中实现高效的分页查询。适合理解并优化查询性能的开发者。

1150





