Одновариантная замена NULL-значения реальным значением
Синтаксис
nvl(< выражение 1 >, < выражение 2 >)
< выражение 1 >
::=< значимое выражение >
< выражение 2 >
::=< значимое выражение >
Описание
Функция возвращает значение < выражения 1 >
в случае, если < выражение 1 >
не
является NULL-значением, иначе возвращает значение < выражения 2 >
.
Функция эквивалентна конструкции СУБД ЛИНТЕР:
CASE WHEN < выражение 1 > IS NOT NULL THEN < выражение 1 > ELSE < выражение 2 > END;
Типы данных < выражения 1 >
и < выражения 2 >
должны быть идентичными или приводимыми. При приведении типов данных по умолчанию (без конструкции CAST…) второй аргумент приводится к типу данных первого аргумента.
Пример
create procedure nvl_test(in arg1 char(20); in arg2 char(10)) result char(20) code return nvl(arg1, arg2); end; execute nvl_test("abc",null); return value = abc execute nvl_test(null,"123"); return value = 123