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

Функция NULLIF() в Oracle

В Oracle Database, NULLIF() функцията сравнява два израза и връща null ако и двата израза са равни. Ако не са равни, тогава функцията връща първия израз.

Синтаксис

Синтаксисът е така:

NULLIF(expr1, expr2)

Пример

Ето пример за демонстрация:

SELECT NULLIF(5, 7)
FROM DUAL;

Резултат:

5

В този случай аргументите не бяха равни и така функцията върна първия аргумент.

Ето какво се случва, когато и двата аргумента са равни:

SET NULL 'null';
SELECT NULLIF(7, 7)
FROM DUAL;

Резултат:

null

Можем да видим, че NULLIF() връща null когато и двата аргумента са равни

По отношение на първия ред SET NULL 'null'; , добавих това, така че моята SQLcl сесия връща null когато резултатът е нулев.

По подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато null възниква в резултат на SQL SELECT изявление.

Можете обаче да използвате SET NULL за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null трябва да бъдат върнати.

В сравнение с CASE

NULLIF() функцията е еквивалентна на следния CASE израз:

CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END

Невалиден брой аргументи

Извикването на функцията без предаване на аргументи води до грешка:

SELECT NULLIF()
FROM DUAL;

Резултат:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

И предаването на твърде много аргументи също води до грешка:

SELECT NULLIF(1, 2, 3)
FROM DUAL;

Резултат:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

  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 JDeveloper 12c с Oracle Database, част 1

  2. Инсталиране на Oracle Forms and Reports 11g Release 2

  3. Агентът е блокиран

  4. как да проверите дали базата данни е последователна след непълно възстановяване

  5. Как мога да напиша SQL в Oracle в моя случай?