sql >> Database >  >> RDS >> Oracle

CASE versus DECODE

Er is één groot verschil tussen DECODE en CASE en het heeft te maken met hoe NULLs worden vergeleken. DECODE geeft "true" terug als je NULL vergelijkt naar NULL . CASE zal niet. Bijvoorbeeld:

DECODE(NULL, NULL, 1, 0)

geeft '1' terug.

CASE NULL
    WHEN NULL THEN 1
    ELSE 0
END

geeft '0' terug. Je zou het moeten schrijven als:

CASE
    WHEN NULL IS NULL THEN 1
    ELSE 0
END


  1. Recordtellingen voor alle tabellen in de MySQL-database ophalen

  2. Oracle Analytic-functies - een windowing-clausule opnieuw instellen

  3. Wanneer hebben kolom- of tabelnamen van Postgres aanhalingstekens nodig en wanneer niet?

  4. Dieper graven in Django-migraties