如需转载,请注明,谢谢!
--前面的数据
--过滤掉子查询的数据,取前几行的数据
--如果查询第二页,子查询的Top值 = 上一个分页查询的父Top的值 + 子查询的Top的值
SELECT TOP 2 * FROM [EFCoreTestDb].[dbo].[Student]
WHERE Id NOT IN (SELECT TOP 0
Id FROM [EFCoreTestDb].[dbo].[Student] order by ID)
order by ID
--后面的数据
--创建新的列RowNumber,此列从1开始,
--取值范围:闭区间
--BETWEEN:[1,2]
SELECT* FROM (
SELECT*,ROW_NUMBER() OVER (ORDER BY Id) AS RowNumber FROM [TableName] ) as b
where RowNumber BETWEEN 1 and 3
--2012之后的版本
--第一页:下标是从0开始,取3条记录,包括index是0
--第二页:下标是从3开始,
--规律:
-- 每一页的起始位置:(PageIndex-1)* 3,既是offset的值
--取值范围:前闭后开
--[index,index+3-1)
select * from [TableName] order by Id offset 0 row fetch next 3 row only