sql >> Databasteknik >  >> RDS >> Mysql

VÄLJ en kolumn om den andra är null

ANSI-metoden är att använda COALESCE :

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

Den ursprungliga MySQL-syntaxen är IFNULL :

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

Till skillnad från COALESCE är IFNULL inte portabel till andra databaser.

En annan ANSI-syntax, CASE-uttrycket , är ett alternativ:

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

Det kräver mer riktning för att fungera korrekt, men är mer flexibelt om kraven ändras.



  1. God praxis att öppna/stänga anslutningar i en asp.net-applikation?

  2. En-till-många-relation i MySQL - hur bygger man en modell?

  3. PostgreSQL - fråga från bash script som databasanvändare 'postgres'

  4. Hur kan jag ladda upp enskilda CSV-rader till olika tabeller i PHP?