ホームページ > データベース > 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 の特殊なケースを使用した値の並べ替え

この説明は、「タスク」という名前の PostgreSQL テーブルからのデータの配置を中心に説明します。各タスクには「並べ替え」と呼ばれるオプションのフィールドがあります。目標は、「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

COALESCE(sort,99999) を単独で使用すると、null 値は非 null 値の後にグループ化されますが、次のような特殊なケースには対処できません。 "-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」値が順序の最後に配置されます。

DESC キーワードを使用する別のアプローチも示されています。

SELECT *
FROM tasks
ORDER BY (sort IS DISTINCT FROM -1) DESC, sort;
ログイン後にコピー

どちらのメソッドも、「sort」値を使用せずにタスクを他のすべての後に効果的に並べ替えますが、「-1」値が他のすべての非 null 並べ替え値の後に表示されるようにします。

以上がNull と特殊なケース (-1) 値を含む PostgreSQL データを並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート