在 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
要解决此错误,请通过将 select 语句包装在公共表表达式 (CTE) 中来采用解决方法。这允许查询 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中文网其他相关文章!