salaryplus
を知っている場合 常にsalaryminus
より大きくなります 、それならあなたはできる
order by coalesce(salaryplus, salaryminus, 0)
coalesce
nullではない最初の値を返します。両方の値がnullの場合は(この例では)0を返します。
それ以外の場合は、次のようにします:
order by greatest(ifnull(salaryminus,0), ifnull(salaryplus,0))
これにより、両方のsalaryminus
が処理されます およびsalaryplus
nullの場合は0として、2つのうち大きい方の順に並べます。