Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie bestellt man maximal zwei Spalten, die in MySQL null sein können?

Wenn Sie wissen, dass salaryplus ist immer größer als salaryminus , dann können Sie tun

order by coalesce(salaryplus, salaryminus, 0)

coalesce gibt den ersten Wert zurück, der nicht null ist, oder (in diesem Beispiel) 0, wenn beide Werte null sind.

Andernfalls tun Sie etwas wie folgt:

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

Dadurch werden beide salaryminus behandelt und salaryplus als 0, wenn sie null sind, und werden nach dem größeren der beiden sortiert.