SQL Server2012 Offset Fetch子句 分页查询
在本教程中,将学习如何使用SQL Server OFFSET FETCH子句来限制查询返回的行数。OFFSET和FETCH子句是ORDER BY子句的选项。 它们用于限制查询返回的行数。
以下是OFFSET和FETCH子句的语法:
在上面语法中,
OFFSET子句指定在开始从查询返回行之前要跳过的行数。offset_row_count可以是大于或等于零的常量,变量或参数。FETCH子句指定在处理OFFSET子句后要返回的行数。offset_row_count可以是大于或等于1的常量,变量或标量。OFFSET子句是必需的,而FETCH子句是可选的。 此外,FIRST和NEXT是同义词,因此可以互换使用它们。
以下图中说明了OFFSET和FETCH子句:
请注意,必须将OFFSET和FETCH子句与ORDER BY子句一起使用。 否则将收到错误消息。OFFSET和FETCH子句比实现TOP子句更适合实现查询分页解决方案。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
翻页存储过程:CREATE PROC PageTest
@CurrentPage INT, --当前页
@PageSize INT --每页多少条
AS
BEGIN
SELECT *
FROM dbo.T
ORDER BY ID --这里一定得加Order By
OFFSET (@PageSize * (@CurrentPage - 1)) ROW FETCH NEXT @PageSize ROWS ONLY;
END;
————————————————
执行:
EXEC dbo.PageTest @CurrentPage = 2, -- int
@PageSize = 2 -- int
————————————————

浙公网安备 33010602011771号