【发布时间】:2026-01-04 01:00:01
【问题描述】:
我正在尝试在 SQL SERVER 中进行分页,但在 OFFSET 和 ROWS 上出现两个错误
CREATE PROCEDURE XYZ
@offset int,
@limit int,
@order char(4),
@Id int
AS
BEGIN
SELECT * FROM TABLE
WHERE ID = @id
ORDER BY
CASE WHEN @order = 'desc' THEN [TIME] END DESC,
CASE WHEN @order = 'asc' THEN [TIME] END ASC
*OFFSET* @offset FETCH ROWS NEXT @limit *ROWS* ONLY
END
GO
OFFSET 出错:
'OFFSET' 附近的语法不正确。
ROWS 上的错误(第二个):
“ROWS”附近的语法不正确。期待 FROM。
有人可以帮我解决这个问题吗?
【问题讨论】:
-
*OFFSET* @offset FETCH ROWS NEXT @limit *ROWS* ONLY应该是OFFSET @offset ROWS FETCH NEXT @limit ROWS ONLY -
您的目标是 SQL Server 2012 或更高版本吗?
-
@ZoharPeled 我使用星号来标识我遇到错误的两个关键字。
-
@Damien_The_Unbeliever 好的,我认为问题出在哪里。我正在使用 SQL Server 2008。:|
-
@siddharth 是的,但我的评论是指
FETCH ROWS应该是ROWS FETCH...
标签: sql-server tsql pagination