PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

ORDINE personalizzato PER Spiegazione

Ogni espressione viene valutata come bool e trattata come 0 per false e 1 per true e ordinata in modo appropriato. Anche se funziona, la logica è difficile da seguire (e quindi mantenere). Quello che uso è una funzione che trova l'indice di un valore in un array.

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

Questo è molto più facile da seguire. Le unghie verranno smistate per prime e le noci ordinate per ultime. Puoi vedere come creare la funzione idx nel repository di frammenti di Postgres.http://wiki.postgresql.org/wiki/Array_Index