sql >> Base de Datos >  >> RDS >> Mysql

SELECCIONE una columna si la otra es nula

El medio ANSI es usar COALESCE :

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

La sintaxis nativa de MySQL es IFNULL :

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

A diferencia de COALESCE, IFNULL no se puede transferir a otras bases de datos.

Otra sintaxis ANSI, la expresión CASE , es una opción:

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

Requiere más dirección para funcionar correctamente, pero es más flexible si cambian los requisitos.