Oracle
 sql >> база данни >  >> RDS >> Oracle

CASE срещу DECODE

Има една голяма разлика между DECODE и CASE и това е свързано с това как NULLs се сравняват. DECODE ще върне "true", ако сравните NULLs до NULLs . CASE няма да. Например:

DECODE(NULL, NULL, 1, 0)

ще върне '1'.

CASE NULL
    WHEN NULL THEN 1
    ELSE 0
END

ще върне '0'. Трябва да го напишете като:

CASE
    WHEN NULL IS NULL THEN 1
    ELSE 0
END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземане на дъмп на таблици в oracle 10g чрез PL/SQL процедура

  2. проверете за валидна дата, която е декларирана в varchar2

  3. Как да продължите обработката на курсора след изключение в Oracle

  4. С изключение на неподдържани таблици, които да бъдат заснети от потоци на Oracle

  5. Въведение в PL/SQL колекциите в Oracle Database