Maison >base de données >tutoriel mysql >Pourquoi ne puis-je pas utiliser d'alias dans la clause WHERE d'une requête PostgreSQL ?
Référencement d'alias dans la clause WHERE : une exploration
Dans PostgreSQL (psql), il n'est pas directement possible de référencer des alias dans la clause WHERE en raison à l'ordre d'exécution. La clause WHERE est exécutée avant que les alias ne soient appliqués, ce qui entraîne l'erreur "la colonne "_year" n'existe pas."
Cela se produit car la clause WHERE opère sur les noms de colonnes d'origine et l'alias n'est appliqué que plus tard. , lors de la génération de l'ensemble de résultats. Par conséquent, l'alias n'est pas reconnu lorsque la clause WHERE est exécutée.
Pour résoudre ce problème, la requête doit être réécrite pour utiliser le nom de colonne d'origine directement dans la clause WHERE. Par exemple, considérons la requête :
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE _year > 90;
Cette requête échouera avec l'erreur "la colonne "_year" n'existe pas." Pour résoudre ce problème, l'alias doit être remplacé par le nom de colonne d'origine dans la clause WHERE :
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE SUBSTRING(pk, 6, 2)::INT > 90;
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!