Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SELECIONE uma coluna se a outra for nula


O meio ANSI é usar COALESCE :
SELECT COALESCE(a2.date, a1.date) AS `date`
   ...

A sintaxe nativa do MySQL é IFNULL :
SELECT IFNULL(a2.date, a1.date) AS `date`
   ...

Ao contrário do COALESCE, o IFNULL não é portátil para outros bancos de dados.

Outra sintaxe ANSI, a expressão CASE , é uma opção:
SELECT CASE
         WHEN a2.date IS NULL THEN a1.date
         ELSE a2.date
       END AS `date`
   ...

Requer mais direção para funcionar corretamente, mas é mais flexível se os requisitos mudarem.