How to order by maximum of two column which can be null in MySQL?
If you know that salaryplus
will always be greater than salaryminus
, then you can do
order by coalesce(salaryplus, salaryminus, 0)
coalesce
will return the first value which is not null, or (in this example) 0, if both values are null.
Otherwise, do something like this:
order by greatest(ifnull(salaryminus,0), ifnull(salaryplus,0))
This will treat both salaryminus
and salaryplus
as 0 if they are null, and will order by the larger of the two.