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