Re: ORDER BY - problem with NULL values
От | Stefan Schwarzer |
---|---|
Тема | Re: ORDER BY - problem with NULL values |
Дата | |
Msg-id | DD60869E-B761-4C3F-A15A-14E15FC260B0@grid.unep.ch обсуждение исходный текст |
Ответ на | Re: ORDER BY - problem with NULL values (Richard Huxton <dev@archonet.com>) |
Ответы |
Re: ORDER BY - problem with NULL values
|
Список | pgsql-general |
>> Hi there, >> if I order a given year in DESCending ORDER, so that the highest >> values (of a given variable) for the countries are displayed at >> the top of the list, then actually the NULL values appear as >> first. Only below, I find the values ordered correctly. >> Is there any way to >> a) make the countries with NULL values appear at the bottom of >> the list >> b) neglect the NULL values by still allowing the countries to >> be displayed > > Not sure what you mean by (b), but (a) is straightforward enough. > > => SELECT * FROM (SELECT 1 as a UNION SELECT 2 UNION SELECT > null::int) AS foo ORDER BY (a is null), a DESC; > a > --- > 2 > 1 > > (3 rows) Looks easy. If I apply this to my SQL: SELECT SUM(CASE WHEN year=2002 THEN value ELSE NULL END) AS "y_2002", SUM(CASE WHEN year=2001 THEN value ELSE NULL END) AS "y_2001", SUM(CASE WHEN year=2000 THEN value ELSE NULL END) AS "y_2000", c.name AS name FROM aquacult_prod_marine AS d LEFT JOIN countries AS c ON c.id = id_country GROUP BY name ORDER BY y_2000 DESC I would then say: ORDER BY (y_2000 is null), y_2000 DESC But then I get an Error warning: ERROR: column "y_2000" does not exist What do I do wrong?
В списке pgsql-general по дате отправления: