Elke expressie wordt geëvalueerd als een bool en behandeld als 0 voor onwaar en 1 voor waar en op de juiste manier gesorteerd. Ook al werkt dit, de logica is moeilijk te volgen (en dus vol te houden). Wat ik gebruik is een functie die de index van een waarde in een array vindt.
ORDER BY idx(array['Nails','Bolts','Washers','Screws','Staples','Nuts'], s.type)
Dit is veel gemakkelijker te volgen. Nagels worden als eerste gesorteerd en noten als laatste. U kunt zien hoe u de idx-functie maakt in de Postgres-fragmentenrepository.http://wiki.postgresql.org/wiki/Array_Index