Maison > base de données > tutoriel mysql > Comment puis-je référencer correctement les alias dans une clause SQL WHERE ?

Comment puis-je référencer correctement les alias dans une clause SQL WHERE ?

Mary-Kate Olsen
Libérer: 2024-12-26 14:03:14
original
767 Les gens l'ont consulté

How Can I Correctly Reference Aliases in a SQL WHERE Clause?

Référencement des alias dans la clause WHERE

Lorsque vous travaillez avec des requêtes SQL, il est souvent nécessaire d'utiliser des alias pour donner des noms temporaires aux tables ou aux expressions . Cela peut améliorer la lisibilité et la maintenabilité de votre code. Cependant, il est important d'être conscient des limites lors du référencement d'alias dans différentes parties de la requête.

Le problème

Dans l'exemple fourni, une tentative est faite pour référencer un alias (_year) dans la clause WHERE d'une requête. Cependant, cela entraîne une erreur :

ERROR:  column "_year" does not exist
Copier après la connexion

Cette erreur se produit car la clause WHERE est exécutée en premier, avant la clause SELECT. Au moment de l'exécution, la base de données n'a pas encore rencontré la définition d'alias dans la clause SELECT et ne peut donc pas la reconnaître.

Solution

Pour contourner ce problème, vous pouvez réécrire la requête afin que l'alias soit défini dans la clause WHERE elle-même. Cela garantit que l'alias est disponible lorsque la clause WHERE est exécutée :

SELECT
    SUBSTRING(pk, 6, 2)::INT AS _year
FROM
    listing
WHERE
    SUBSTRING(pk, 6, 2)::INT > 90
Copier après la connexion

En plaçant la définition de l'alias dans la clause WHERE, vous pouvez référencer l'alias dans la même clause, sans rencontrer d'erreurs.

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