Сортировать значения NULL до конца таблицы - PullRequest
70 голосов
/ 01 октября 2011

Есть ли способ с PostgreSQL сортировать строки со значениями NULL в полях до конца выбранной таблицы?

Как:

SELECT * FROM table ORDER BY somevalue, PUT_NULL_TO_END

Ответы [ 2 ]

135 голосов
/ 01 октября 2011

Прежде всего, значения NULL являются отсортированными последними по умолчанию по возрастанию . Вам не нужно делать ничего лишнего.

Эта проблема относится к убывающему порядку , который является совершенным обратным и, следовательно, сначала сортирует значения NULL. Решение , на которое указал Мости, было представлено с PostgreSQL 8.3 :

ORDER BY somevalue DESC NULLS LAST

Для PostgreSQL 8.2 и более ранних версий или других СУБД без этой стандартной функции SQL, которую можно заменить:

ORDER BY (somevalue IS NULL), somevalue DESC

FALSE сортирует перед TRUE, поэтому значения NULL идут последними, как в примере выше.

Связанный позже ответ:

48 голосов
/ 01 октября 2011

Это делает трюк?

ORDER BY somevalue DESC NULLS LAST

Взято из: http://www.postgresql.org/docs/9.0/static/sql-select.html

...