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
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
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!