Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment ordonner par maximum deux colonnes qui peuvent être nulles dans MySQL ?

Si vous savez que salaryplus sera toujours supérieur à salaryminus , alors vous pouvez faire

order by coalesce(salaryplus, salaryminus, 0)

coalesce renverra la première valeur qui n'est pas nulle, ou (dans cet exemple) 0, si les deux valeurs sont nulles.

Sinon, faites quelque chose comme ceci :

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

Cela traitera à la fois salaryminus et salaryplus comme 0 s'ils sont nuls, et sera trié par le plus grand des deux.