sql >> Databasteknik >  >> RDS >> Oracle

CASE kontra DECODE

Det finns en stor skillnad mellan DECODE och CASE och det har att göra med hur NULLs jämförs. DECODE returnerar "true" om du jämför NULL till NULL . CASE ska inte. Till exempel:

DECODE(NULL, NULL, 1, 0)

returnerar '1'.

CASE NULL
    WHEN NULL THEN 1
    ELSE 0
END

kommer att returnera '0'. Du måste skriva det som:

CASE
    WHEN NULL IS NULL THEN 1
    ELSE 0
END


  1. Hur man kontrollerar MySQL-versionen

  2. Ytterligare en anledning att undvika sp_updatestats

  3. Migrera din Access-databas till SQL Server

  4. finns det en fördel med varchar(500) framför varchar(8000)?