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

¿Cómo ordenar por un máximo de dos columnas que pueden ser nulas en MySQL?

Si sabes que salaryplus siempre será mayor que salaryminus , entonces puedes hacer

order by coalesce(salaryplus, salaryminus, 0)

coalesce devolverá el primer valor que no sea nulo, o (en este ejemplo) 0, si ambos valores son nulos.

De lo contrario, haz algo como esto:

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

Esto tratará tanto a salaryminus y salaryplus como 0 si son nulos, y ordenará por el mayor de los dos.