Mỗi biểu thức được đánh giá là bool và được coi là 0 đối với sai và 1 đối với đúng và được sắp xếp một cách thích hợp. Mặc dù điều này hoạt động, nhưng logic khó tuân theo (và do đó duy trì). Những gì tôi sử dụng là một hàm tìm chỉ mục của giá trị trong một mảng.
ORDER BY idx(array['Nails','Bolts','Washers','Screws','Staples','Nuts'], s.type)
Điều này dễ dàng hơn nhiều để làm theo. Đinh sẽ được sắp xếp đầu tiên và các loại hạt được sắp xếp sau cùng. Bạn có thể xem cách tạo hàm idx trong kho lưu trữ đoạn mã Postgres.http://wiki.postgresql.org/wiki/Array_Index