web-dev-qa-db-fra.com

Trier les valeurs NULL à la fin d'un tableau

Existe-t-il un moyen avec PostgreSQL pour trier les lignes avec des valeurs NULL dans les champs à la fin de la table sélectionnée?

Comme:

SELECT * FROM table ORDER BY somevalue, PUT_NULL_TO_END
70
helle

Tout d'abord, les valeurs NULL sont triées en dernier par défaut ascendant ordre. Vous n'avez rien à faire de plus.

Le problème s'applique à décroissant ordre, qui est l'inverse parfait et trie donc les valeurs NULL en premier. La solution @Mosty l'a souligné a été introduite avec PostgreSQL 8.3 :

ORDER BY somevalue DESC NULLS LAST

Pour PostgreSQL 8.2 et les anciens ou autres SGBDR sans cette fonctionnalité SQL standard, vous pouvez remplacer:

ORDER BY (somevalue IS NULL), somevalue DESC

FALSE trie avant TRUE, donc les valeurs NULL viennent en dernier, comme dans l'exemple ci-dessus.

Réponse ultérieure connexe:

137

Est-ce que cela fait l'affaire?

ORDER BY somevalue DESC NULLS LAST

Tiré de: http://www.postgresql.org/docs/9.0/static/sql-select.html

48
Mosty Mostacho