Maison >base de données >tutoriel mysql >Comment utiliser ROW_NUMBER() dans une clause WHERE ?

Comment utiliser ROW_NUMBER() dans une clause WHERE ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-18 14:19:11112parcourir

How to Use ROW_NUMBER() in a WHERE Clause?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn