Re: Query

From: Alban Hertroys <dalroi(at)solfertje(dot)student(dot)utwente(dot)nl>
To: marco santillan <marco_equis(at)yahoo(dot)es>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Query
Date: 2009-05-25 10:18:47
Message-ID: F7AC0508-12F3-4ECF-867B-82870D00E95D@solfertje.student.utwente.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On May 25, 2009, at 4:56 AM, marco santillan wrote:

> Hola a todos:
>
> Tengo la siguiente inquietud. En una consulta com la siguiente:
>
> select campo1,
> campo2,
> campo1 - campo2 as campo_virtual,
> campo3,
> case when campo_virtual = 1 then 5 else 0 end as segundo_campo_virtual
> from tabla;
>
> Esto lo puedo hacer en access sin ningun problema, pero en
> postgresql no reconoce el campo_virtual.
>
> ¿Es que postgresql no soporta esta consulta o existe algun otro
> metodo para lograr esta tecnica?
>
>
> Nota: (campo1 - campo2) en realidad es una compleja consulta que se
> usa varias veces lineas abajo.

I believe you're asking whether it's not supported to reference column
aliases further on in the query? You got that right, they don't get
computed until the final stage of the query.

A workaround is as follows:

select campo1,
campo2,
campo_virtual,
campo3,
case when campo_virtual = 1 then 5 else 0 end as segundo_campo_virtual
from (select *, campo1 - campo2 as campo_virtual from tabla) as tabla;

Alban Hertroys

--
If you can't see the forest for the trees,
cut the trees and you'll see there is no forest.

!DSPAM:737,4a1a708910091961258073!

In response to

  • Query at 2009-05-25 02:56:10 from marco santillan

Responses

  • Re: Query at 2009-05-25 12:21:57 from raul.giucich

Browse pgsql-general by date

  From Date Subject
Next Message Alban Hertroys 2009-05-25 11:17:27 Re: very large tables
Previous Message queries 2009-05-25 09:58:14 Java Gui for Postgress