Unexpected behavior with CASE statement
| От | Jimmy Choi |
|---|---|
| Тема | Unexpected behavior with CASE statement |
| Дата | |
| Msg-id | 5770602b0710031205s1e81ff77h5a4eb23d806fa790@mail.gmail.com обсуждение исходный текст |
| Ответы |
Re: Unexpected behavior with CASE statement
Re: Unexpected behavior with CASE statement |
| Список | pgsql-general |
Suppose I have the following table named "metrics":
metric_type | val
------------+-----
0 | 1
0 | 1
1 | 0
1 | 3
Now suppose I run the following simple query:
select
metric_type,
case metric_type
when 0 then
sum (1 / val)
when 1 then
sum (val)
end as result
from metrics
group by metric_type
I expect to get the following result set:
metric_type | result
------------+-------
0 | 2
1 | 3
But in reality I get the following error:
ERROR: division by zero
SQL state: 22012
So it appears that Postgres executes all cases and select the result
in the end. Is this expected behavior?
Thanks
- Jimmy
В списке pgsql-general по дате отправления: