sql >> Databáze >  >> RDS >> Mysql

Jak seřadit podle maximálně dvou sloupců, které mohou být v MySQL null?

Pokud víte, že salaryplus bude vždy větší než salaryminus , pak můžete udělat

order by coalesce(salaryplus, salaryminus, 0)

coalesce vrátí první hodnotu, která není null, nebo (v tomto příkladu) 0, pokud jsou obě hodnoty null.

Jinak udělejte něco takového:

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

Tím se započítá jak salaryminus a salaryplus jako 0, pokud jsou null, a seřadí se podle větší z těchto dvou.



  1. Jak řešit problémy s ORA-02049 a se zámkem obecně s Oracle

  2. Nelze se připojit k místnímu serveru MySQL přes soket '/tmp/mysql.sock

  3. Odstranění výchozí stopy – část 3

  4. Zdroj dat odmítl navázání spojení, zpráva ze serveru:Příliš mnoho spojení