[转][SQL Server]分页查询

方式一:使用 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 的方式更为简洁直观。

posted on   z5337  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2016-03-11 [转][ASP.net]后台页面刷新
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示