いくつかのオンラインの例に基づいてスクリプトを作成した CTE クエリがありますが、RowId に関するエラーが発生する理由がわかりません。
DECLARE @StartRow INT
DECLARE @EndRow INT
SET @StartRow = 120
SET @EndRow = 140
;WITH MyCTE AS
(
SELECT
c1, c2, c3,
ROW_NUMBER() OVER(ORDER BY gav.c1) AS RowId
FROM
MyTable1 gav
)
SELECT *
FROM MyTable1
WHERE RowId > @StartRow
AND RowId < @EndRow
ORDER BY c1
次のエラーが表示されます。
メッセージ 207、レベル 16、状態 1、行 15
列名 'RowId' が無効です。
メッセージ 207、レベル 16、状態 1、行 16
列名 'RowId' が無効です。
私が見たすべての例RowId
では、クエリで CTE の値を参照していますが、何らかの理由で範囲外のようです。