Одновариантная замена 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