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

SELEZIONA una colonna se l'altra è nulla

Il mezzo ANSI consiste nell'utilizzare COALESCE :

SELECT COALESCE(a2.date, a1.date) AS `date`
   ...

La sintassi nativa di MySQL è IFNULL :

SELECT IFNULL(a2.date, a1.date) AS `date`
   ...

A differenza di COALESCE, IFNULL non è portabile su altri database.

Un'altra sintassi ANSI, l'espressione CASE , è un'opzione:

SELECT CASE
         WHEN a2.date IS NULL THEN a1.date
         ELSE a2.date
       END AS `date`
   ...

Richiede più indicazioni per funzionare correttamente, ma è più flessibile se i requisiti cambiano.