В 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()
функция, която ви позволява да зададете различна стойност, която да върнете, в случай че първият аргумент не е нулев.