首頁 > 資料庫 > mysql教程 > 如何對最後帶有 NULL 的 PostgreSQL 資料進行排序(特定值除外)?

如何對最後帶有 NULL 的 PostgreSQL 資料進行排序(特定值除外)?

Susan Sarandon
發布: 2025-01-04 05:33:42
原創
381 人瀏覽過

How to Order PostgreSQL Data with NULLs Last, Except for a Specific Value?

將NULL 值排在所有其他值之後,特殊情況除外

在包含可選排序字段的Postgre 表格中對資料進行排序時,一個常見的挑戰正在處理空值。最好將具有空排序值的任務放在所有其他任務之後,但優先考慮具有特殊排序值(例如 -1)的任務。

這可以透過結合使用 COALESCE 函數和布林運算子來實現,特別是 (IS NOT DISTINCT FROM) 運算子。以下查詢示範了此方法:

SELECT *
FROM tasks
ORDER BY (sort IS NOT DISTINCT FROM -1), sort;
登入後複製

工作原理:

(sort IS NOT DISTINCT FROM -1) 表達式對於除-1,計算結果為TRUE。在 PostgreSQL 的預設排序順序中,NULL 值放在最後,而 TRUE 的排名高於 FALSE。

透過將此表達式合併到ORDER BY 子句中,排序值為-1 的任務將定位在非-1 的任務之後空排序值,而具有空排序值的任務放置在所有其他任務之後。

其他注意:

可以使用 DESC 關鍵字編寫替代的等效查詢:

SELECT *
FROM tasks
ORDER BY (sort IS DISTINCT FROM -1) DESC, sort;
登入後複製

以上是如何對最後帶有 NULL 的 PostgreSQL 資料進行排序(特定值除外)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板