В Oracle Database, NVL() функцията ни позволява да заменим нулеви стойности с друга стойност.
Синтаксис
Синтаксисът е така:
NVL(expr1, expr2)
Ако expr1 е нула, след това expr2 се връща. В противен случай expr1 се връща.
Пример
Ето пример за демонстрация:
SELECT NVL(null, 'Fish')
FROM DUAL; Резултат:
Fish
И ето какво се случва, когато първият аргумент е ненулева стойност:
SELECT NVL('Brocoli', 'Fish')
FROM DUAL; Резултат:
Brocoli
Невалиден брой аргументи
Извикването на функцията без предаване на аргументи води до грешка:
SELECT NVL()
FROM DUAL; Резултат:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
И предаването на твърде много аргументи също води до грешка:
SELECT NVL(1, 2, 3)
FROM DUAL; Резултат:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
NVL2() Функция
Като алтернатива можете да използвате NVL2() функция, която ви позволява да зададете различна стойност, която да върнете, в случай че първият аргумент не е нулев.