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

Hvordan bestiller jeg efter maksimalt to kolonner, som kan være nul i MySQL?

Hvis du kender det salaryplus vil altid være større end salaryminus , så kan du gøre

order by coalesce(salaryplus, salaryminus, 0)

coalesce returnerer den første værdi, som ikke er null, eller (i dette eksempel) 0, hvis begge værdier er null.

Ellers gør du sådan noget:

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

Dette vil behandle både salaryminus og salaryplus som 0, hvis de er nul, og vil sortere efter den største af de to.



  1. Hvordan øges i SQL ved hjælp af en trigger?

  2. Mysql single query join 3 table og få alle resultaterne

  3. Sådan aktiveres ENUM'er i Symfony 2 / Doctrine

  4. Sammenligning af SQL, forespørgselsbyggere og ORM'er