オプションの並べ替えフィールドを使用してデータベース テーブル内のデータを整理する場合、Null 値を最後に配置するのが一般的です。ただし、特定の値に対して例外が必要な場合があります。 PostgreSQL では、null 値を非 null の後に並べ替えるという要件が生じました。-1 は例外であり、他のすべての後に来る必要があります。
これを達成するために、次のような簡単な解決策が提示されました。
SELECT * FROM tasks ORDER BY (sort IS NOT DISTINCT FROM -1), sort;
Postgres は、NULL を含むブール値を型として扱います。デフォルトの並べ替え順序は次のとおりです:
式内 (sort IS NOT DISTINCT FROM -1)、条件は、-1 を除くすべての値に対して FALSE と評価されます。 TRUE にすると最後にソートされます。これを並べ替えによる二次順序付けと組み合わせると、データが希望どおりに並べ替えられます。
同じ結果を生成する代替クエリは次のとおりです。
SELECT * FROM tasks ORDER BY (sort IS DISTINCT FROM -1) DESC, sort;
Postgres のブール機能を利用し、ORDER と組み合わせることで、 BY 句を使用すると、複雑な並べ替え要件を簡単に処理できるようになります。
以上が特定の値の例外を使用して PostgreSQL で Null を最後にソートする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。