Es posible ordenar por diferentes criterios los resultados que devuelve una sola query. Para esto utilizaremos CASE dentro de la claúsula ORDER BY.
La mejor forma es verlo por medio de un ejemplo:
order by CASE WHEN 1=1 THEN mes
END,
CASE WHEN tipo_cliente = 'Persona_fisica' THEN apellido1
END,
CASE WHEN tipo_cliente = 'Persona_fisica' THEN apellido2
END,
CASE WHEN tipo_cliente = 'Persona_fisica' THEN nombre
END,
CASE WHEN tipo_cliente = 'Persona_juridica' THEN razon_social
END
En este caso queremos ordenar los registros de la siguiente manera:
Primer criterio, ordenar todos los resultados por mes.
Segundo criterio, ordenar resultados de los clientes que sean persona física por apellidos y nombre.
Tercer criterio, ordenar los resultados de los clientes que sean persona jurídica por razón social.
Un ejemplo sencillo pero ilustrativo. Con CASE se puede poner toda la lógica necesaria para la ordenación dependiendo de nuestras necesidades.
No hay comentarios:
Publicar un comentario