Maison >base de données >tutoriel mysql >Comment trier les valeurs nulles en dernier dans PostgreSQL avec une exception de valeur spécifique ?

Comment trier les valeurs nulles en dernier dans PostgreSQL avec une exception de valeur spécifique ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-29 11:44:18517parcourir

How to Sort Nulls Last in PostgreSQL with a Specific Value Exception?

Tri : valeurs nulles après tout sauf exception spéciale

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 :

  • FALSE (0)
  • TRUE (1)
  • NULL

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!

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