在 PostgreSQL 中将 NULL 值排序到表的末尾
对数据进行排序时,NULL 值可能会带来挑战,因为它们会破坏预期订单。在 PostgreSQL 中,根据所使用的排序顺序,NULL 值有不同的行为。
默认升序
默认情况下,按升序对行进行排序时,NULL 值被放置在结果的开头。这是因为 NULL 被认为小于任何非 NULL 值。
不使用 NULL 的降序 LAST
但是,在不使用 NULL 的情况下按降序排序时LAST 选项,NULL 值放置在顶部。这是因为按降序排列,NULL 被认为大于任何非 NULL 值。
以 NULLS LAST 进行降序排列
将 NULL 值排序到末尾表按降序排列,使用 NULLS LAST 选项:
ORDER BY somevalue DESC NULLS LAST
此选项指定 NULL 值应该按降序排序时被视为最低值。
PostgreSQL 8.2 及更早版本的替代方法
对于 PostgreSQL 8.2 及更早版本,或不支持的 RDBMS支持NULLS LAST选项,可以使用以下解决方法:
ORDER BY (somevalue IS NULL), somevalue DESC
此表达式利用了 FALSE(代表 NULL)在 TRUE(代表非 NULL 值)之前排序的事实。通过检查 somevalue 字段是否为 NULL,我们有效地将 NULL 值移动到排序顺序的末尾。
以上是如何将 NULL 值排序到 PostgreSQL 表的末尾?的详细内容。更多信息请关注PHP中文网其他相关文章!