Maison > base de données > tutoriel mysql > Pourquoi SQL Server génère-t-il une erreur « Nom de colonne invalide » lors de l'utilisation d'alias de fonction d'agrégation dans la clause HAVING ?

Pourquoi SQL Server génère-t-il une erreur « Nom de colonne invalide » lors de l'utilisation d'alias de fonction d'agrégation dans la clause HAVING ?

Patricia Arquette
Libérer: 2024-12-24 17:20:15
original
260 Les gens l'ont consulté

Why Does SQL Server Produce an

Restriction d'alias SQL Server dans la clause HAVING

Dans SQL Server, l'utilisation d'un alias pour une fonction d'agrégation dans la clause HAVING peut entraîner le Erreur « Nom de colonne non valide ». Cette apparente contradiction provient du flux d'exécution d'une requête SQL.

La clause HAVING évalue après les opérations de groupe mais avant le processus de sélection. Ainsi, lors de la première exécution de la clause HAVING, l'alias attribué à la fonction d'agrégation, tel que « col7 » dans l'extrait de code fourni, n'est pas encore reconnu par le serveur.

L'ordre d'exécution de la requête est le suivant suit :

  1. Joignez les tables spécifiées dans la clause FROM.
  2. Filtrez les lignes à l'aide de WHERE
  3. Regroupez les lignes en fonction de la clause GROUP BY.
  4. Éliminez les groupes qui ne remplissent pas la condition de la clause HAVING.
  5. Calculez les expressions dans l'instruction SELECT.

Par conséquent, au moment de l'évaluation de la clause HAVING, le serveur ne reconnaît pas 'col7' comme nom de colonne valide. Cette restriction empêche l'utilisation d'alias dans la clause HAVING pour référencer des fonctions d'agrégation.

Cependant, il est possible d'utiliser des alias dans la clause ORDER BY, car cette évaluation a lieu après la clause HAVING.

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