WHERE 句で ROW_NUMBER() 関数を使用したクエリ
WHERE 句で ROW_NUMBER() 関数を使用しようとすると、クエリ「ウィンドウ関数は SELECT 句または ORDER BY 句でのみ使用できます。」というエラーが発生しました。問題のクエリは次のとおりです:
SELECT employee_id FROM v_employee WHERE ROW_NUMBER() OVER (ORDER BY employee_id) > 0 ORDER BY employee_id
このエラーを解決するには、共通テーブル式 (CTE) 内で select ステートメントをラップするという回避策を採用します。これにより、CTE に対してクエリを実行し、WHERE 句でウィンドウ関数の結果を利用できるようになります。
WITH MyCte AS ( select employee_id, RowNum = row_number() OVER ( order by employee_id ) from V_EMPLOYEE ORDER BY Employee_ID ) SELECT employee_id FROM MyCte WHERE RowNum > 0
以上がWHERE句でROW_NUMBER()を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。