Maison > base de données > tutoriel mysql > Comment utiliser les alias dans les clauses WHERE de Postgresql ?

Comment utiliser les alias dans les clauses WHERE de Postgresql ?

Linda Hamilton
Libérer: 2025-01-20 20:23:15
original
546 Les gens l'ont consulté

How to Use Aliases in Postgresql WHERE Clauses?

Résoudre l'alias Postgresql dans le problème de la clause WHERE

Les requêtes Postgresql renvoient parfois une erreur indiquant une colonne inexistante lors de l'utilisation d'alias dans la clause WHERE. Cela se produit parce que l'évaluation de la clause WHERE précède la clause SELECT, rendant les alias définis dans SELECT indisponibles.

La solution consiste à utiliser des expressions de table communes (CTE). Un CTE crée un jeu de résultats temporaire nommé qui peut être référencé ultérieurement dans la requête, y compris dans la clause WHERE. Cela permet effectivement l'utilisation d'un alias dans la condition WHERE. Voici une illustration :

<code class="language-sql">WITH job_details AS (
    SELECT
        jobs.*, 
        CASE
            WHEN lead_informations.state IS NOT NULL THEN lead_informations.state
            ELSE 'NEW'
        END AS lead_status
    FROM
        jobs
        LEFT JOIN lead_informations ON
            lead_informations.job_id = jobs.id
            AND
            lead_informations.mechanic_id = 3
)
SELECT *
FROM job_details
WHERE lead_status = 'NEW';</code>
Copier après la connexion

Le CTE, « job_details », génère une table temporaire comprenant la colonne alias « lead_status ». La clause WHERE utilise ensuite cet alias de manière transparente comme si elle faisait référence à une colonne de table standard. Cette approche améliore la flexibilité et la lisibilité des requêtes.

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