PostgreSQL有没有办法在字段中将NULL
值的行排序到所选表的末尾?
像:
SELECT * FROM table ORDER BY somevalue, PUT_NULL_TO_END
答案 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
FALSE
在TRUE
之前排序,因此NULL值最后,就像上面的例子一样。
相关后续回答:
答案 1 :(得分:45)
这会成功吗?
ORDER BY somevalue DESC NULLS LAST
取自:http://www.postgresql.org/docs/9.0/static/sql-select.html