特殊なケースを使用して他のすべての値の後に null 値を並べ替える方法
問題:
オプションの並べ替えフィールド (並べ替え) を使用して PostgreSQL テーブルを並べ替える場合、どうすれば確実に並べ替えることができますか?それ:
解決策:
次の SQL を使用します。ステートメント:
SELECT * FROM tasks ORDER BY (sort IS NOT DISTINCT FROM -1), sort;
説明:
式 (sort IS NOT DISTINCT FROM -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 |
クエリは次の並べ替え結果を生成します:
id | f_id | name | sort ---+------+----------+------- 2 | 1 | alpha | 1 4 | 1 | beta | 2 3 | 1 | gamma | 3 5 | 1 | delta | 6 | 1 | epsilon | 1 | 1 | zeta | -1
以上がPostgreSQL で Null を最後と特定の値を最後から 2 番目に並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。