Reputation: 11650
Is there a way with PostgreSQL to sort rows with NULL
values in fields to the end of the selected table?
Like:
SELECT * FROM table ORDER BY somevalue, PUT_NULL_TO_END
Upvotes: 151
Views: 79789
Reputation: 656291
NULL
values are sorted last in default ascending order. You don't have to do anything extra.
The issue applies to descending order, which is the perfect inverse and thus sorts NULL
values on top.
PostgreSQL 8.3 introduced NULLS LAST
:
ORDER BY somevalue DESC NULLS LAST
For PostgreSQL 8.2 and older or other RDBMS without this standard SQL feature:
ORDER BY (somevalue IS NULL), somevalue DESC
FALSE
sorts before TRUE
, so NULL
values come last, just like in the example above.
See:
Upvotes: 297
Reputation: 43434
Does this make the trick?
ORDER BY somevalue DESC NULLS LAST
Taken from: http://www.postgresql.org/docs/9.0/static/sql-select.html
Upvotes: 70