在具有可選排序字段的 PostgreSQL表中,目標是依下列方式對數值進行排序:
要實現這種排序行為,一種方法是使用以下ORDER BY子句:
ORDER BY (sort IS NOT DISTINCT FROM -1), sort
此子句的操作如下:
考慮提供的範例data:
id | f_id | name | sort |
---|---|---|---|
1 | 1 | zeta | -1 |
2 | 1 | alpha | 1 |
3 | 1 | gamma | 3 |
4 | 1 | beta | 2 |
5 | 1 | delta | NULL |
6 | 1 | epsilon | NULL |
使用提供的子句,項目將如下排序:
alpha, beta, gamma, delta, epsilon, zeta
初始子句的等效替代是:
ORDER BY (sort IS DISTINCT FROM -1) DESC, sort
此子句產生相同的排序行為,但使用 DESC 關鍵字對 (sort IS DISTINCT FROM -1) 表達式依降序排列。
以上是如何在 PostgreSQL 中對非空值進行升序排序,然後是空值,最後是 -1 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!