Query

Started by marco santillanalmost 17 years ago4 messagesgeneral
Jump to latest
#1marco santillan
marco_equis@yahoo.es

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.

Marco.-

In reply to: marco santillan (#1)
Re: Query

On Mon, May 25, 2009 at 02:56:10AM +0000, 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.

Marco.-

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

This is an english list, you will need to ask in english or "nobody" is
going to answer.

--
DISCLAIMER: http://goldmark.org/jeff/stupid-disclaimers/
This message will self-destruct in 3 seconds.

#3Alban Hertroys
dalroi@solfertje.student.utwente.nl
In reply to: marco santillan (#1)
Re: Query

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!

#4Raul Giucich
raul.giucich@gmail.com
In reply to: Alban Hertroys (#3)
Re: Query

O podrías escribir,

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

Saludos.
R.

On May 25, 2009 6:18am, Alban Hertroys
<dalroi@solfertje.student.utwente.nl> wrote:

Show quoted text

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!

--

Sent via pgsql-general mailing list (pgsql-general@postgresql.org)

To make changes to your subscription:

http://www.postgresql.org/mailpref/pgsql-general