Existe-t-il un moyen avec PostgreSQL de trier les lignes avec des NULL
valeurs dans les champs jusqu'à la fin de la table sélectionnée?
Comme:
SELECT * FROM table ORDER BY somevalue, PUT_NULL_TO_END
Réponses:
Tout d'abord, les valeurs NULL sont triées en dernier dans l' ordre croissant par défaut . Vous n'avez rien à faire de plus.
Le problème s'applique à l' ordre décroissant , qui est l'inverse parfait et trie donc d'abord les valeurs NULL. La solution indiquée par @Mosty a été introduite avec PostgreSQL 8.3 :
ORDER BY somevalue DESC NULLS LAST
Pour PostgreSQL 8.2 et versions antérieures ou d'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, tout comme dans l'exemple ci-dessus.
Réponse ultérieure connexe:
Cela fait-il l'affaire?
ORDER BY somevalue DESC NULLS LAST
Tiré de: http://www.postgresql.org/docs/9.0/static/sql-select.html