为什么在PostgreSQL查询中排序DESC时会出现NULL值?

Bry*_*yan 9 sql database postgresql null sql-order-by

在订购查询降序或升序时,您何时会首先想要NULLS?

在我看来,绝大多数时候,无论是升序还是降序,所期望的行为都是NULLS LAST.相反,我们必须指定NULLS FIRST.

Erw*_*ter 16

实际上,使用默认排序顺序(ASCENDING)NULL值最后.

逻辑规定排序顺序与DESCENDING关键字相反,因此在这种情况下,NULL 首先出现.

但最好的部分是最后一个:你可以选择你想要的方式:

在撰写时引用当前手册 9.3版:

如果NULLS LAST指定了,则null值在所有非空值之后排序; 如果NULLS FIRST指定了if ,则null值将在所有非null值之前排序.如果不指定,则默认行为是 NULLS LASTASC被指定或暗示,并NULLS FIRSTDESC 指定的被(因此,默认是充当虽然空值比非空值大).当USING指定,默认空排序取决于运营商是否是一个小于或大于运营商.

大胆强调我的.

  • 是的,下降应该与提升相反是合乎逻辑的.同时,NULL值具有"无值",因此NULL值永远不应位于任何有序列表的顶部. (3认同)