Maison >base de données >tutoriel mysql >Comment utiliser ROW_NUMBER() dans une clause WHERE ?
Requête à l'aide de la fonction ROW_NUMBER() dans la clause WHERE
Dans le but d'utiliser la fonction ROW_NUMBER() dans une clause WHERE, une requête a rencontré l'erreur "Les fonctions fenêtrées ne peuvent apparaître que dans les clauses SELECT ou ORDER BY." La requête en question était :
SELECT employee_id FROM v_employee WHERE ROW_NUMBER() OVER (ORDER BY employee_id) > 0 ORDER BY employee_id
Pour résoudre cette erreur, utilisez une solution de contournement en encapsulant l'instruction select dans une expression de table commune (CTE). Cela permet d'interroger le CTE et d'utiliser les résultats de la fonction fenêtrée dans la clause 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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!