Re: CASE
От | Rod Taylor |
---|---|
Тема | Re: CASE |
Дата | |
Msg-id | 1053386689.24151.49.camel@jester обсуждение исходный текст |
Ответ на | CASE ("James Taylor" <jtx@hatesville.com>) |
Список | pgsql-sql |
On Mon, 2003-05-19 at 02:59, James Taylor wrote: > Hi everyone, I'm trying to figure out how to get CASE working in a sum > aggregate function. Pretty simple query: > > select sum(numbers) from lists where uid=1; > > It's possible that there may be 0 rows where uid == 1. Instead of > returning 1 blank row, I want it to return '0'. So, I tried this: > > select case(sum(numbers)) when null then 0 else sum(numbers) end from > list_results; Use Coalesce: SELECT coalesce(sum(numbers), 0) FROM lists WHERE uid = 1; To use case, efficiently, if you really want: SELECT CASE WHEN sum_numbers IS NULL THEN 0 ELSE sum_numbers END AS sum_numbers FROM (SELECT sum(numbers)AS sum_numbers FROM lists WHERE uid = 1 ) as tab; -- Rod Taylor <rbt@rbt.ca> PGP Key: http://www.rbt.ca/rbtpub.asc
В списке pgsql-sql по дате отправления: