sql >> Databáze >  >> RDS >> Oracle

CASE vs. DECODE

Mezi DECODE je jeden velký rozdíl a CASE a souvisí to s tím, jak NULLs se porovnávají. DECODE vrátí "true", pokud porovnáte NULL na NULL . CASE nebude. Například:

DECODE(NULL, NULL, 1, 0)

vrátí '1'.

CASE NULL
    WHEN NULL THEN 1
    ELSE 0
END

vrátí '0'. Museli byste to napsat jako:

CASE
    WHEN NULL IS NULL THEN 1
    ELSE 0
END


  1. Ovladač ODBC Quickbooks

  2. Spuštění SQL Serveru 2014 na virtuálním počítači Azure

  3. Vraťte výsledky dotazu SQL jako JSON v oracle 12c

  4. Zabraňte ukládání změn, které vyžadují opětovné vytvoření tabulky, negativním účinkům