PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

ORDER BY personnalisé Explication

Chaque expression est évaluée comme un booléen et traitée comme 0 pour faux et 1 pour vrai et triée de manière appropriée. Même si cela fonctionne, la logique est difficile à suivre (et donc à maintenir). Ce que j'utilise est une fonction qui trouve l'index d'une valeur dans un tableau.

ORDER BY idx(array['Nails','Bolts','Washers','Screws','Staples','Nuts'], s.type)

C'est beaucoup plus facile à suivre. Les clous seront triés en premier et les noix en dernier. Vous pouvez voir comment créer la fonction idx dans le référentiel d'extraits Postgres.http://wiki.postgresql.org/wiki/Array_Index