如何在特殊情况下对空值进行排序
问题:
当使用可选排序字段(sort)对 PostgreSQL 表进行排序时,如何确保即:
解决方案:
使用以下SQL语句:
SELECT * FROM tasks ORDER BY (sort IS NOT DISTINCT FROM -1), sort;
解释:
表达式(排序与 -1 不不同)的计算结果为:
示例:
考虑以下示例数据:
id | f_id | name | sort ---+------+----------+------- 1 | 1 | zeta | -1 2 | 1 | alpha | 1 3 | 1 | gamma | 3 4 | 1 | beta | 2 5 | 1 | delta | 6 | 1 | epsilon |
查询将生成以下排序结果:
id | f_id | name | sort ---+------+----------+------- 2 | 1 | alpha | 1 4 | 1 | beta | 2 3 | 1 | gamma | 3 5 | 1 | delta | 6 | 1 | epsilon | 1 | 1 | zeta | -1
以上是如何在 PostgreSQL 中对最后一个空值和倒数第二个特定值进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!