sql >> Databasteknik >  >> RDS >> Mysql

Hur beställer man efter max två kolumner som kan vara null i MySQL?

Om du vet att salaryplus kommer alltid att vara större än salaryminus , då kan du göra

order by coalesce(salaryplus, salaryminus, 0)

coalesce returnerar det första värdet som inte är null, eller (i detta exempel) 0, om båda värdena är null.

Annars gör du något så här:

order by greatest(ifnull(salaryminus,0), ifnull(salaryplus,0))

Detta kommer att behandla både salaryminus och salaryplus som 0 om de är null, och kommer att sorteras efter den största av de två.



  1. PHP + MySQL-kö

  2. Hämta mer än 3 data från mysql till kryssrutan

  3. Startar om transaktionen i MySQL efter dödläge

  4. SQL Server-inställning – allt handlar om mätning