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!