PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Benutzerdefinierte ORDER BY Erklärung

Jeder Ausdruck wird als bool ausgewertet und als 0 für falsch und 1 für wahr behandelt und entsprechend sortiert. Obwohl dies funktioniert, ist die Logik schwer zu befolgen (und somit aufrechtzuerhalten). Was ich verwende, ist eine Funktion, die den Index eines Werts in einem Array findet.

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

Dies ist viel einfacher zu befolgen. Nägel werden zuerst und Nüsse zuletzt sortiert. Sie können sehen, wie Sie die idx-Funktion im Postgres-Snippets-Repository erstellen.http://wiki.postgresql.org/wiki/Array_Index