方式一:使用 OFFSET/FETCH 子句(SQL Server 2012 及以上版本支持)
-- 假设 PageSize 表示每页的记录数,pageNumber 表示当前页码(从1开始) DECLARE @PageSize INT = 10; DECLARE @pageNumber INT = 3; SELECT * FROM table1 ORDER BY Id -- 或者按其他字段排序 OFFSET (@pageNumber - 1) * @PageSize ROWS FETCH NEXT @PageSize ROWS ONLY;
方式二:使用 ROW_NUMBER() 函数
WITH CTE AS ( SELECT *, ROW_NUMBER() OVER (ORDER BY Id) AS RowNum FROM table1 ) SELECT * FROM CTE WHERE RowNum BETWEEN (@pageNumber - 1) * @PageSize + 1 AND @pageNumber * @PageSize;
这两种方式都可以实现对 table1 表的分页查询,不过 OFFSET/FETCH 的方式更为简洁直观。
标签:分页,PageSize,OFFSET,Server,pageNumber,SQL,FETCH,SELECT From: https://www.cnblogs.com/z5337/p/18065428