sql >> Databáze >  >> RDS >> Mysql

SQL SELECT ORDER BY více sloupců v závislosti na hodnotě jiného sloupce

V aktuálním dotazu seřadíte podle součtu čtyř sloupců. Můžete použít least abyste získali nejnižší hodnotu, takže vaše objednávka podle klauzule by mohla vypadat takto:

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

To by samozřejmě seřadilo pouze podle nejnižší hodnoty. Pokud by dva řádky sdílely stejnou nejnižší hodnotu, nedochází k řazení podle druhé nejnižší hodnoty. Udělat to je o něco těžší a z vaší otázky jsem opravdu nepochopil, zda to potřebujete.




  1. SQL Server 2008 Express CONCAT() neexistuje?

  2. implementovat dotaz LIKE v PDO

  3. Jak mohu zjistit, kolik připojení MySQL je otevřeno?

  4. Jak rozdělit řetězec v MySQL