sql >> Database teknologi >  >> RDS >> Oracle

CASE vs. DECODE

Der er én stor forskel mellem DECODE og CASE og det har at gøre med hvordan NULLs sammenlignes. DECODE vil returnere "true", hvis du sammenligner NULL til NULL . CASE vil ikke. For eksempel:

DECODE(NULL, NULL, 1, 0)

vil returnere '1'.

CASE NULL
    WHEN NULL THEN 1
    ELSE 0
END

vil returnere '0'. Du skal skrive det som:

CASE
    WHEN NULL IS NULL THEN 1
    ELSE 0
END


  1. WIDTH_BUCKET() Funktion i Oracle

  2. Visninger i SQL Server

  3. Definer en variabel i select, og brug den inden for samme select

  4. Oracle partitionsindeks