オプションの並べ替えフィールドを持つ PostgreSQL テーブルでの目標は次のとおりです。次のように値を並べ替えます:
この並べ替え動作を実現するには、次のような方法があります。 ORDER BY 句:
ORDER BY (sort IS NOT DISTINCT FROM -1), sort
この句は次のように動作します:
提供されたサンプルを検討してください。 data:
id | f_id | name | sort |
---|---|---|---|
1 | 1 | zeta | -1 |
2 | 1 | alpha | 1 |
3 | 1 | gamma | 3 |
4 | 1 | beta | 2 |
5 | 1 | delta | NULL |
6 | 1 | epsilon | NULL |
指定された句を使用すると、項目は次のように並べ替えられます:
alpha, beta, gamma, delta, epsilon, zeta
最初の句と同等の代替は次のとおりです。
ORDER BY (sort IS DISTINCT FROM -1) DESC, sort
この句は同じ並べ替え動作を生成しますが、DESC キーワードを使用して並べ替えます (sort IS DISTINCT FROM -1) 式を降順で並べます。
以上がPostgreSQLでNull以外の値を昇順、次にNull、-1値を最後にソートする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。