sql >> Base de Datos >  >> RDS >> Mysql

SQL SELECCIONA ORDEN POR múltiples columnas dependiendo del valor de otra columna

En su consulta actual, ordena por la suma de las cuatro columnas. Puede usar least para obtener el valor más bajo, por lo que su orden por cláusula podría verse así:

SELECT *
FROM vehicle
ORDER BY
  `revisit` DESC,
  CASE WHEN `revisit` = 1 THEN LEAST(`FL`, `FR`, `RR`, `RL`) END ASC,
  CASE WHEN `revisit` = 0 THEN `date` END ASC

Por supuesto, esto ordenaría solo por el valor más bajo. Si dos filas comparten el mismo valor más bajo, no se clasifica según el segundo valor más bajo. Hacer eso es un poco más difícil, y realmente no entendí de tu pregunta si lo necesitas.