93 PostgreSQL是否可以对NULL所选表末尾的字段中的值进行排序? 喜欢: SELECT * FROM table ORDER BY somevalue, PUT_NULL_TO_END sql postgresql null sql-order-by — 赫勒 source
168 首先,NULL值在默认升序中排在最后的顺序。您无需执行任何其他操作。 该问题适用于降序,这是完美的逆,因此首先将NULL值排序。@Mosty指出的解决方案是在PostgreSQL 8.3中引入的: ORDER BY somevalue DESC NULLS LAST 对于没有此标准SQL功能的PostgreSQL 8.2及更早版本或其他RDBMS,您可以替代: ORDER BY (somevalue IS NULL), somevalue DESC FALSE 之前排序 TRUE就像在上面的示例中一样,在,因此NULL值排在最后。 相关稍后的答案: PostgreSQL按datetime asc排序,是否为null? — 欧文·布兰德斯特 source 1 恕我直言,在大多数实际应用中,无论顺序如何,您都希望null值持续存在。例如,在可选的时间戳,名字,姓氏等上对DESC进行排序,因此即使在数学上似乎以DESC顺序与ASC相反,我也发现它确实令人怀疑。也许null只是它们自己的一个类别,并且不应该受ASC,DESC的影响并且始终放在最后,这将是更好的默认设置。 — Christophe Roussy 如果它们是DESC,则可能会影响索引,也许您也可以对此添加注释?postgresql.org/message-id/... — 克里斯托夫鲁西研究所 @ChristopheRoussy:在上面的链接的答案中触摸了与排序顺序匹配的索引。 — Erwin Brandstetter 2 我个人认为默认值应该相反:NULL首先以升序排列,然后以降序排列。这更直观,因为NULL是“最小”值。 — 斯蒂芬, 1 对于来自MYSQL的人来说,这是大声笑吗?为什么首先要像这样建造。还是Mysql过分优化了结果 — CodeGuru
54 这会成功吗? ORDER BY somevalue DESC NULLS LAST 摘自:http : //www.postgresql.org/docs/9.0/static/sql-select.html — 莫斯蒂·莫斯塔乔(Mosty Mostacho) source