Maison > base de données > tutoriel mysql > Comment puis-je utiliser correctement les alias dans la clause WHERE de PostgreSQL ?

Comment puis-je utiliser correctement les alias dans la clause WHERE de PostgreSQL ?

Mary-Kate Olsen
Libérer: 2024-12-28 06:10:10
original
624 Les gens l'ont consulté

How Can I Correctly Use Aliases in PostgreSQL's WHERE Clause?

Référencement des alias dans les clauses WHERE dans Postgres

Dans PostgreSQL, faire référence aux alias dans la clause WHERE peut conduire à des erreurs telles que "la colonne ne exister." Cela se produit car la clause WHERE s'exécute avant que les alias ne soient définis dans la clause SELECT.

Pourquoi ce n'est pas possible

En SQL, les clauses sont exécutées dans un ordre spécifique : WHERE , FROM, GROUP BY, HAVING, SELECT, ORDER BY. Cela signifie que lorsque Postgres rencontre la clause WHERE, il ne connaît pas encore les alias que vous avez définis dans la clause SELECT.

Solution

Pour résoudre ce problème, vous devez réécrire votre requête pour éviter d'utiliser des alias dans la clause WHERE. Au lieu de cela, spécifiez directement l’expression à comparer. Par exemple, la requête suivante sélectionne correctement les lignes où les deuxième à sixième caractères de la colonne « pk », convertis en nombre entier, sont supérieurs à 90 :

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

Remarque : Ceci la limitation s'applique uniquement aux alias définis dans la clause SELECT. Les alias définis dans d'autres clauses, telles que FROM ou JOIN, peuvent être utilisés dans les clauses suivantes.

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