Maison >base de données >tutoriel mysql >Comment trier les valeurs NULL jusqu'à la fin d'une table PostgreSQL ?

Comment trier les valeurs NULL jusqu'à la fin d'une table PostgreSQL ?

DDD
DDDoriginal
2024-12-26 16:24:14758parcourir

How to Sort NULL Values to the End of a PostgreSQL Table?

Tri des valeurs NULL jusqu'à la fin d'une table dans PostgreSQL

Lors du tri des données, les valeurs NULL peuvent présenter un défi car elles peuvent perturber le ordre prévu. Dans PostgreSQL, il existe différents comportements pour les valeurs NULL en fonction de l'ordre de tri utilisé.

Ordre croissant par défaut

Par défaut, lors du tri des lignes par ordre croissant, les valeurs NULL sont placés au début du résultat. En effet, NULL est considéré comme inférieur à toute valeur non NULL.

Ordre décroissant sans NULLS LAST

Cependant, lors du tri par ordre décroissant sans utiliser les NULLS Option LAST, les valeurs NULL sont placées en haut. En effet, NULL est considéré comme supérieur à toute valeur non NULL par ordre décroissant.

Ordre décroissant avec NULLS LAST

Pour trier les valeurs NULL jusqu'à la fin de le tableau par ordre décroissant, utilisez l'option NULLS LAST :

ORDER BY somevalue DESC NULLS LAST

Cette option spécifie que les valeurs NULL doivent être traitées comme les valeurs les plus basses lors du tri par ordre décroissant.

Méthode alternative pour PostgreSQL 8.2 et versions antérieures

Pour les versions PostgreSQL 8.2 et versions antérieures, ou pour les SGBDR qui ne prennent pas en charge les NULLS DERNIÈRE option, vous pouvez utiliser la solution de contournement suivante :

ORDER BY (somevalue IS NULL), somevalue DESC

Cette expression utilise le fait que FALSE (qui représente NULL) trie avant TRUE (qui représente des valeurs non NULL). En vérifiant si le champ somevalue est NULL, nous déplaçons effectivement les valeurs NULL à la fin de l'ordre de tri.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn