Mysql
 sql >> Database >  >> RDS >> Mysql

Come ordinare per un massimo di due colonne che possono essere nulle in MySQL?

Se conosci quel salaryplus sarà sempre maggiore di salaryminus , allora puoi farlo

order by coalesce(salaryplus, salaryminus, 0)

coalesce restituirà il primo valore che non è nullo, o (in questo esempio) 0, se entrambi i valori sono nulli.

Altrimenti, fai qualcosa del genere:

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

Questo tratterà entrambi salaryminus e salaryplus come 0 se sono nulli e verranno ordinati in base al maggiore dei due.