--表和数据
GO
/****** Object: Table [dbo].[TestTable] Script Date: 2021/3/3 21:33:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TestTable](
[keyId] [int] IDENTITY(1,1) NOT NULL,
[info] [nvarchar](20) NULL
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[TestTable] ON
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (1, N'sqlBlog')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (2, N'sql爱好者')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (3, N'A')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (4, N'B')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (5, N'c')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (6, N'd')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (7, N'e')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (8, N'f')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (9, N'g')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (10, N'h')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (11, N'i')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (12, N'j')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (13, N'h')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (14, N'o')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (15, N'p')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (16, N'q')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (17, N'r')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (18, N's')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (19, N't')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (20, N'u')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (21, N'v')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (22, N'w')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (23, N'x')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (24, N'y')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (25, N'z')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (26, N'AA')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (27, N'BB')
GO
INSERT [dbo].[TestTable] ([keyId], [info]) VALUES (28, N'CC')
GO
SET IDENTITY_INSERT [dbo].[TestTable] OFF
GO
--测试sql
SELECT
*
FROM
(SELECT
ROW_NUMBER() OVER(ORDER BY keyId asc) rowNumber,
COUNT(1) OVER() AS [rowCount],
keyId,info
FROM [TestTable] where 1=1 /*检索条件*/
) t
Order by rowNumber
OFFSET 4 ROWS FETCH NEXT 4 ROWS ONLY
--注意 最后面的分页语句必须前面接order by,不然会语法错误