sql >> Database teknologi >  >> RDS >> Mysql

SQL SELECT ORDER BY flere kolonner afhængigt af værdien af ​​anden kolonne

I din aktuelle forespørgsel bestiller du efter summen af ​​de fire kolonner. Du kan bruge least for at få den laveste værdi, så din ordre efter klausul kunne se sådan ud:

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

Selvfølgelig vil dette kun sortere efter den laveste værdi. Hvis to rækker begge deler den samme laveste værdi, er der ingen sortering på den næstlaveste værdi. At gøre det er en del sværere, og jeg forstod ikke rigtigt fra dit spørgsmål, om du har brug for det.




  1. Sådan gemmer du kun tid; ikke dato og tid?

  2. Forbindelsen kan ikke castes til oracle.jdbc.OracleConnection

  3. Slut dig til to MySQL-tabeller med PHP

  4. Rækkenummer pr. gruppe i mysql