Ho una domanda come questa:Utilizzando una colonna alias nella clausola in cui in PostgreSQL
SELECT
jobs.*,
(
CASE
WHEN lead_informations.state IS NOT NULL THEN lead_informations.state
ELSE 'NEW'
END
) AS lead_state
FROM
jobs
LEFT JOIN lead_informations ON
lead_informations.job_id = jobs.id
AND
lead_informations.mechanic_id = 3
WHERE
lead_state = 'NEW'
che dà il seguente errore:
PGError: ERROR: column "lead_state" does not exist
LINE 1: ...s.id AND lead_informations.mechanic_id = 3 WHERE (lead_state...
In MySql questo è valido, ma a quanto pare non in PostgreSQL. Da quello che posso raccogliere, il motivo è che la parte SELECT
della query viene valutata in seguito rispetto alla parte WHERE
. C'è una soluzione comune per questo problema?
Credo che questo non è valido per PostgreSQL ... – pcent
@pcent che spiegherebbe l'errore allora ... – troelskn
E 'una buona domanda, ma una query di esempio bizzarro. Non si desidera mai selezionare un valore non NULL per quella colonna, quindi l'intera istruzione CASE non è necessaria. – phils