Varje uttryck utvärderas som en bool och behandlas som 0 för falskt och 1 för sant och sorteras på lämpligt sätt. Även om detta fungerar är logiken svår att följa (och därmed upprätthålla). Det jag använder är en funktion som hittar ett värdes index i en array.
ORDER BY idx(array['Nails','Bolts','Washers','Screws','Staples','Nuts'], s.type)
Detta är mycket lättare att följa. Naglar kommer att sorteras först och nötter sorteras sist. Du kan se hur du skapar idx-funktionen i Postgres snippets repository.http://wiki.postgresql.org/wiki/Array_Index