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
Libérer: 2024-12-18 14:19:11
original
112 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal