sql >> Base de Datos >  >> RDS >> PostgreSQL

ORDEN PERSONALIZADO POR Explicación

Cada expresión se evalúa como un valor booleano y se trata como 0 si es falso y 1 si es verdadero y se ordena adecuadamente. Aunque esto funciona, la lógica es difícil de seguir (y por lo tanto mantener). Lo que uso es una función que encuentra el índice de un valor en una matriz.

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

Esto es mucho más fácil de seguir. Los clavos se clasificarán en primer lugar y las nueces en último lugar. Puede ver cómo crear la función idx en el repositorio de fragmentos de Postgres.http://wiki.postgresql.org/wiki/Array_Index