Доступные версии документации

Двухвариантная замена NULL-значения реальным значением

Назначение

Двухвариантная замена неопределенного значения (NULL-значения) реальным значением.

Синтаксис
 
nvl2(<выражение 1>, <выражение 2>, <выражение 3>)

<выражение 1>::=<значимое выражение>

<выражение 2>::=<значимое выражение>

<выражение 3>::=<значимое выражение>

Описание

Функция возвращает значение <выражения 2> в случае, если <выражение 1> не является NULL-значением, иначе возвращает значение <выражения 3>.

Функция эквивалентна конструкции СУБД ЛИНТЕР:

CASE WHEN <выражение 1> IS NOT NULL
THEN <выражение 2> ELSE <выражение 3> END;

Типы данных <выражения 1>, <выражения 2>, <выражения 3> должны быть идентичными или приводимыми. При приведении типов данных по умолчанию (без конструкции CAST…) второй и третий аргументы приводятся к типу данных первого аргумента.

Пример
create or replace procedure nvl_test(in v char(20)) result char(20)
code
  return nvl2(v, "is NOT NULL", "is NULL");
end;

execute nvl_test();
return value = is NULL

execute nvl_test('A');
return value = is NOT NULL
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter