web-dev-qa-db-ja.com

NULL値をテーブルの最後に並べ替えます

PostgreSQLで、フィールドにNULL値を持つ行を選択したテーブルの最後までソートする方法はありますか?

お気に入り:

SELECT * FROM table ORDER BY somevalue, PUT_NULL_TO_END
70
helle

まず、NULL値areはデフォルトで最後にソートされます昇順順序。特別なことをする必要はありません。

この問題はdescending順序に適用されます。これは完全な逆であり、NULL値を最初にソートします。 ソリューション@Mostyが指摘した は、PostgreSQL 8.3で導入されました:

ORDER BY somevalue DESC NULLS LAST

PostgreSQL 8.2およびこの標準SQL機能のない古いまたは他のRDBMSの場合、次のように置き換えることができます。

ORDER BY (somevalue IS NULL), somevalue DESC

FALSETRUEの前にソートされるため、上の例のようにNULL値が最後になります。

関連する後の回答:

137

これでうまくいきますか?

ORDER BY somevalue DESC NULLS LAST

から取得: http://www.postgresql.org/docs/9.0/static/sql-select.html

48
Mosty Mostacho