将NULL值排序到表的末尾

时间:2011-10-01 15:39:30

标签: sql postgresql null sql-order-by

PostgreSQL有没有办法在字段中将NULL值的行排序到所选表的末尾?

像:

SELECT * FROM table ORDER BY somevalue, PUT_NULL_TO_END

2 个答案:

答案 0 :(得分:129)

首先,NULL值 以默认升序顺序排序。你不需要做任何额外的事情。

此问题适用于 降序 顺序,这是完美的反转,因此首先对NULL值进行排序。 solution @Mosty pointed out引入了 PostgreSQL 8.3

ORDER BY somevalue DESC NULLS LAST

对于 PostgreSQL 8.2 以及没有此标准SQL功能的旧版或其他RDBMS,您可以替换:

ORDER BY (somevalue IS NULL), somevalue DESC

FALSETRUE之前排序,因此NULL值最后,就像上面的例子一样。

相关后续回答:

答案 1 :(得分:45)

这会成功吗?

ORDER BY somevalue DESC NULLS LAST

取自:http://www.postgresql.org/docs/9.0/static/sql-select.html