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