Comment trier les valeurs nulles après toutes les autres, avec un cas particulier
Problème :
Lors du tri d'une table PostgreSQL avec un champ de tri facultatif (tri), comment pouvez-vous vous assurer que :
Solution :
Utilisez le SQL suivant déclaration :
SELECT * FROM tasks ORDER BY (sort IS NOT DISTINCT FROM -1), sort;
Explication :
L'expression (le tri N'EST PAS DISTINCT DE -1) est évaluée comme :
Exemple :
Considérez l'exemple suivant data :
id | f_id | name | sort ---+------+----------+------- 1 | 1 | zeta | -1 2 | 1 | alpha | 1 3 | 1 | gamma | 3 4 | 1 | beta | 2 5 | 1 | delta | 6 | 1 | epsilon |
La requête produira le résultat trié suivant :
id | f_id | name | sort ---+------+----------+------- 2 | 1 | alpha | 1 4 | 1 | beta | 2 3 | 1 | gamma | 3 5 | 1 | delta | 6 | 1 | epsilon | 1 | 1 | zeta | -1
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!