sql >> Database >  >> RDS >> Mysql

SELECTEER de ene kolom als de andere nul is

De ANSI-methode is om COALESCE te gebruiken :

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

De native MySQL-syntaxis is IFNULL :

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

In tegenstelling tot COALESCE is IFNULL niet overdraagbaar naar andere databases.

Een andere ANSI-syntaxis, de CASE-expressie , is een optie:

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

Het vereist meer regie om goed te werken, maar is flexibeler als de eisen veranderen.



  1. Schakel beveiligde priv uit voor het laden van gegevens op MySQL

  2. 12c Kolom automatisch invullen met reekswaarde

  3. SQL Server-geschiedenistabel - vullen via SP of Trigger?

  4. CROSS JOIN vs INNER JOIN in SQL