首頁 > 資料庫 > mysql教程 > 如何對包含 Null 和特殊情況 (-1) 值的 PostgreSQL 資料進行排序?

如何對包含 Null 和特殊情況 (-1) 值的 PostgreSQL 資料進行排序?

Barbara Streisand
發布: 2024-12-29 18:16:10
原創
575 人瀏覽過

How to Sort PostgreSQL Data with Nulls and a Special Case (-1) Value?

在PostgreSQL 中對特殊情況的值進行排序

本討論圍繞排列名為「tasks」的PostgreSQL 表中的資料進行。每個任務都有一個稱為「排序」的可選欄位。目標是將沒有「排序」值的排序任務優先於所有其他任務,但那些以「-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

單獨使用COALESCE(sort,99999) 會將空值分組在非空值之後,但它不會解決以下特殊情況"-1 ."

此解決方案採用PostgreSQL的布林資料型別來實現所需的排序順序:

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

此查詢利用了比較“(sort IS NOT DISTINCT”這一事實FROM -1)”對於除“-1”之外的所有值均求值為FALSE,「-1」本身求值為TRUE。 >

這兩種方法都可以有效地對沒有「排序」值的任務進行排序,同時確保「-1」值出現在所有其他非空排序值之後。

以上是如何對包含 Null 和特殊情況 (-1) 值的 PostgreSQL 資料進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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