0
我有一個當前可用於分頁的存儲過程。通過存儲過程中的分頁
我如何使用存儲過程是,我從MS Access傳遞動態WHERE子句,以便可以過濾我的數據。
但是,當我過濾數據@MaxRowNum仍在計數表中的記錄數,而不是添加WHERE子句的記錄數。
是否可以計算WHERE子句中的記錄數。
這是到目前爲止我的代碼...
CREATE PROCEDURE [dbo].[SP_FINANCIALSWHERE]
@StartRow AS INT,
@EndRow INT,
@ORGCODE AS VARCHAR(6),
@strWHERE AS VARCHAR(256)
WITH RECOMPILE
AS
BEGIN
SET NOCOUNT ON;
--Declare variables
DECLARE @MaxRowNum INT
DECLARE @SQL NVARCHAR(MAX);
SET @SQL = N'SELECT @MaxRowNum = COUNT(*)
FROM dbo.Posting' + @ORGCODE + '
SELECT
x2.*
,@MaxRowNum as MaxRowNumber
FROM (
SELECT
x1.*
,ROW_NUMBER() OVER(ORDER BY PostingID ASC) AS RowNumber
FROM (
SELECT *
FROM dbo.Posting' + @ORGCODE + '
WHERE ' + @strWHERE + '
) AS x1
) AS x2
WHERE
RowNumber BETWEEN @STARTROW AND @ENDROW;';
EXEC sp_executesql @sql, N'@StartRow INT,@EndRow AS INT, @ORGCODE VARCHAR(6), @strWHERE VARCHAR (256), @MaxRowNum INT', @StartRow, @EndRow,@ORGCODE,@strWHERE, @MaxRowNum;
END
我很新的SQL,請在淺白解釋。