Maison >base de données >tutoriel mysql >Comment trier les valeurs nulles en dernier dans PostgreSQL avec une exception de valeur spécifique ?
Lors de l'organisation des données dans une table de base de données avec un champ de tri facultatif, il est courant de placer les valeurs nulles en dernier. Cependant, une exception est parfois nécessaire pour des valeurs spécifiques. Dans PostgreSQL, il était nécessaire de trier les valeurs nulles après les valeurs non nulles, -1 étant une exception qui devrait venir après toutes les autres.
Pour y parvenir, une solution simple s'est présentée :
SELECT * FROM tasks ORDER BY (sort IS NOT DISTINCT FROM -1), sort;
Postgres traite les valeurs booléennes comme un type, y compris NULL. Son ordre de tri par défaut est :
Dans l'expression (sort N'EST PAS DISTINCTE DE -1), la condition est évaluée à FAUX pour toutes les valeurs sauf -1, qui est évaluée à VRAI et trie en dernier. En combinant cela avec un classement secondaire par tri, les données sont triées comme souhaité.
Une requête alternative qui produit le même résultat est :
SELECT * FROM tasks ORDER BY (sort IS DISTINCT FROM -1) DESC, sort;
En utilisant la fonctionnalité booléenne de Postgres et en la combinant avec ORDER Clause BY, il devient possible de gérer facilement des exigences de tri complexes.
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!