Re: How can I re-use an expression in a SELECT?
От | Oliveiros d'Azevedo Cristina |
---|---|
Тема | Re: How can I re-use an expression in a SELECT? |
Дата | |
Msg-id | 3398C4B3AD4A4572B2BA437C7C7D9AA9@marktestcr.marktest.pt обсуждение исходный текст |
Ответ на | How can I re-use an expression in a SELECT? (Rob Richardson <RDRichardson@rad-con.com>) |
Ответы |
Re: How can I re-use an expression in a SELECT?
|
Список | pgsql-novice |
select charge,
case when c.rev_heat_time = 0 then c.pred_heat_time
else c.rev_heat_time
end as heat_time,
case when c.rev_cool_time = 0 then c.pred_cool_time
else c.rev_cool_time
end as cool_time
from charge c
) subquery
Surely there are more elegant ways of doing this in later versions.
I'm still using 8.3 ...
Best,
Oliveiros
----- Original Message -----From: Rob RichardsonSent: Friday, July 06, 2012 2:04 PMSubject: [NOVICE] How can I re-use an expression in a SELECT?Greetings!
It seems to me, from my uneducated perspective, that if I have a calculated result with a name in a SELECT query, then I ought to be able to re-use the name later in the statement:
select charge,
case when c.rev_heat_time = 0 then c.pred_heat_time
else c.rev_heat_time
end as heat_time,
case when c.rev_cool_time = 0 then c.pred_cool_time
else c.rev_cool_time
end as cool_time,
fire_date + interval '1 minute' * heat_time as end_of_fire
from charge c
Of course, that fails because heat_time cannot be used to calculate end_of_fire. I would have to repeat the case statement that defines it instead. How can I avoid repeating complicated pieces of SELECT queries like this?
Thanks very much!
RobR
В списке pgsql-novice по дате отправления: