sqlserver sql分页同时查询当前顺序和总数量

--表和数据
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,不然会语法错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值