Thread: How change col name during query to use it in where clause

How change col name during query to use it in where clause

From
Marcel Ruff
Date:
Hi,

is an alias name not usable in the where clause?

select EXTRACT(day from enddate::TIMESTAMP - old_enddate::TIMESTAMP) AS TAGE  from account_h  where 
TAGE>5;
ERROR:  column "tage" does not exist
LINE 1: ... TAGE>5 ...

Thank you
Marcel


Re: How change col name during query to use it in where clause

From
"Oliveiros d'Azevedo Cristina"
Date:
I'm affraid
you can't.


AFAIK,
WHERE clause is processed before the SELECT output expressions

Best,
Oliveiros
----- Original Message ----- 
From: "Marcel Ruff" <mr@marcelruff.info>
To: <pgsql-sql@postgresql.org>
Sent: Friday, May 04, 2012 11:25 AM
Subject: [SQL] How change col name during query to use it in where clause


> Hi,
>
> is an alias name not usable in the where clause?
>
> select EXTRACT(day from enddate::TIMESTAMP - old_enddate::TIMESTAMP) AS 
> TAGE  from account_h  where TAGE>5;
> ERROR:  column "tage" does not exist
> LINE 1: ... TAGE>5 ...
>
> Thank you
> Marcel
>
> -- 
> Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-sql 



Re: How change col name during query to use it in where clause

From
Andreas Kretschmer
Date:


Marcel Ruff <mr@marcelruff.info> hat am 4. Mai 2012 um 12:25 geschrieben:

> Hi,
>
> is an alias name not usable in the where clause?

Exactly.

Andreas


Re: How change col name during query to use it in where clause

From
Thomas Kellerer
Date:
Marcel Ruff, 04.05.2012 12:25:
> Hi,
>
> is an alias name not usable in the where clause?
>
> select EXTRACT(day from enddate::TIMESTAMP - old_enddate::TIMESTAMP) AS TAGE from account_h where TAGE>5;
> ERROR: column "tage" does not exist
> LINE 1: ... TAGE>5 ...

You need to wrap the query:

select *
from (   select EXTRACT(day from enddate::TIMESTAMP - old_enddate::TIMESTAMP) AS TAGE   from account_h
) t
where TAGE > 5;