sql2008 数据库分页语句
作者:互联网
2026-04-06
CREATE PROCEDURE Proc_GetBillPage
@PageIndex INT,
@PageSize INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
Id, 账单号, 金额, 交易时间, TotalCount
FROM (
SELECT
ROW_NUMBER() OVER(ORDER BY Id DESC) AS RowNum,
COUNT(*) OVER() AS TotalCount,
Id, 账单号, 金额, 交易时间
FROM 账单表
WHERE 状态 = '有效'
) AS TempTable
WHERE RowNum BETWEEN (@PageIndex - 1) * @PageSize + 1 AND @PageIndex * @PageSize;
END;
GO
-- 调用存储过程
EXEC Proc_GetBillPage @PageIndex = 2, @PageSize = 10;
带总条数的分页(前端分页需总页数)
实际开发中通常需要返回「当前页数据 + 总条数」,可通过 COUNT(*) OVER() 实现(无需额外查询):
DECLARE @PageIndex INT = 2;
DECLARE @PageSize INT = 10;
SELECT
-- 分页数据
Id, 账单号, 金额, 交易时间,
-- 总条数(所有符合条件的记录数,整页数据中该值相同)
TotalCount
FROM (
SELECT
ROW_NUMBER() OVER(ORDER BY Id DESC) AS RowNum,
COUNT(*) OVER() AS TotalCount, -- 计算总条数
t.Id, t.账单号, t.金额, t.交易时间
FROM 账单表 t
WHERE t.交易时间 >= '2026-01-01'
) AS TempTable
WHERE TempTable.RowNum BETWEEN (@PageIndex - 1) * @PageSize + 1 AND @PageIndex * @PageSize;
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
sfsDb 时序数据处理指南
04/13
NineData 成功通过国家高新技术企业认定!
04/13
腾讯云轻量应用服务器管理:自动化轻量服务器 - Openclaw Skills
04/13
系统资源监控器:实时服务器健康追踪 - Openclaw Skills
04/13
前端老兵AI学习过程
04/13
工作笔记-CodeBuddy应用探索
04/13
OpenCode 完全指南:从 0 到 100K Star 的开源 AI 编码 Agent
04/13
Day11-龙虾哥打工日记:OpenClaw救援机器人 - 主系统挂了谁来救场?
04/13
Claude Code 创始人 Boris 揭秘:团队 10 倍效率技巧
04/13
拒绝“手搓”工具!带你硬核手写 MCP Server,解锁 Agent 的无限潜能
04/13
AI精选
