sql >> Database teknologi >  >> RDS >> Mysql

VÆLG én kolonne, hvis den anden er null

ANSI-midlet er at bruge COALESCE :

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

Den oprindelige MySQL-syntaks er IFNULL :

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

I modsætning til COALESCE er IFNULL ikke portabel til andre databaser.

En anden ANSI-syntaks, CASE-udtrykket , er en mulighed:

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

Det kræver mere retning for at fungere korrekt, men er mere fleksibelt, hvis kravene ændrer sig.



  1. MySQL giver læst ECONNRESET fejl efter inaktiv tid på node.js server

  2. Kan ikke generere forskel fra liquibase gradle plugin

  3. Hvad er trinene i databasedesign?

  4. Hvordan opretter man en forespørgsel med to gange forbindelse til en tabel i Laravel 5.3?