SQL Server中的存储过程错误
我无法运行此查询,哪里可能是错误,因为它没有问题,谢谢SQL Server中的存储过程错误,sql,sql-server,Sql,Sql Server,我无法运行此查询,哪里可能是错误,因为它没有问题,谢谢 CREATE PROCEDURE Test @PageSize int, @PageNumber int AS SELECT PK_ID, Test, Descripcion FROM (SELECT PK_ID, Test, Descripcion, ROW_NUMBER() OVER (ORDER BY Test, PK_ID) AS
CREATE PROCEDURE Test
@PageSize int,
@PageNumber int
AS
SELECT
PK_ID, Test, Descripcion
FROM
(SELECT
PK_ID, Test, Descripcion,
ROW_NUMBER() OVER (ORDER BY Test, PK_ID) AS RowNumber
FROM
Mydatabase
) AS Test
WHERE
RowNumber BETWEEN @PageSize * @PageNumber AND @PageSize * (@PageNumber)
尝试将页面添加到页面范围的上限:
WHERE RowNumber BETWEEN @PageSize * @PageNumber
AND @PageSize * (@PageNumber + 1) -- added 1 here
根据页面的编号方式(从0开始或从1开始),您可能应该将
WHERE
子句更改为以下内容之一:
WHERE RowNumber BETWEEN @PageSize * @PageNumber + 1
AND @PageSize * (@PageNumber + 1)
WHERE RowNumber BETWEEN @PageSize * (@PageNumber - 1) + 1
AND @PageSize * @PageNumber
如果可以,为什么会有错误?您收到的错误是什么?我认为您的where子句不正确。两端相同,因此此查询只能返回0或1行。所有问题都是
+1
。。非常感谢。