Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como ordenar no máximo duas colunas que podem ser nulas no MySQL?


Se você sabe que salaryplus será sempre maior que salaryminus , então você pode fazer
order by coalesce(salaryplus, salaryminus, 0)

coalesce retornará o primeiro valor que não for nulo, ou (neste exemplo) 0, se ambos os valores forem nulos.

Caso contrário, faça algo assim:
order by greatest(ifnull(salaryminus,0), ifnull(salaryplus,0))

Isso tratará tanto salaryminus e salaryplus como 0 se forem nulos e serão ordenados pelo maior dos dois.