Mysql
 sql >> Base de données >  >> RDS >> Mysql

SELECT une colonne si l'autre est nulle

Le moyen ANSI est d'utiliser COALESCE :

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

La syntaxe native MySQL est IFNULL :

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

Contrairement à COALESCE, IFNULL n'est pas portable vers d'autres bases de données.

Une autre syntaxe ANSI, l'expression CASE , est une option :

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

Il nécessite plus de direction pour fonctionner correctement, mais est plus flexible si les exigences changent.