表结构
CREATE TABLE [dbo].[F]( [Id] [bigint] NOT NULL, [Title] [varchar](250) NOT NULL, [Introduce] [text] NULL, CONSTRAINT [PK_F] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO
分页查询方式一(OFFSET - FETCH 子句是 SQL Server 2012 及以上版本支持的较为简洁的分页方式)
-- 定义页码和每页记录数的参数 DECLARE @PageNumber INT = 1; DECLARE @PageSize INT = 10; -- 执行分页查询 SELECT [Id], [Title], [Introduce] FROM [dbo].[F] ORDER BY [Id] ASC OFFSET (@PageNumber - 1) * @PageSize ROWS FETCH NEXT @PageSize ROWS ONLY;
分页查询方式二
-- 定义页码和每页记录数的参数 DECLARE @PageNumber INT = 1; DECLARE @PageSize INT = 10; -- 使用 CTE 结合 ROW_NUMBER() 函数进行分页查询 WITH PaginatedData AS ( SELECT [Id], [Title], [Introduce], ROW_NUMBER() OVER (ORDER BY [Id] ASC) AS RowNum FROM [dbo].[F] ) SELECT [Id], [Title], [Introduce] FROM PaginatedData WHERE RowNum BETWEEN ((@PageNumber - 1) * @PageSize + 1) AND (@PageNumber * @PageSize);
本文来自 www.luofenming.com