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

Поиск первого реального значения

Функция

Поиск в заданном списке значений первого реального (не NULL) значения.

Спецификация
 
<синтаксис>::=
<выражениеn>::=
Общие правила
  1. Функция создана для совместимости с СУБД ORACLE.

  2. Функция возвращает первое <выражениеi> из заданного списка, которое не является NULL-значением. Если список выражений содержит только NULL-значения, возвращается NULL-значение. Например:

    Var1Var2Var3COALESCE (var1, var2, var3)
    10203010
    10NULL3010
    1020NULL10
    NULL203020
    NULLNULL3030
    NULLNULLNULLNULL
  3. Тип данных используемых выражений должен совпадать (при этом UNICODE и не UNICODE типы данных смешивать нельзя).

  4. Аргументы могут быть заданы <SQL-параметром>, который должен содержать спецификацию типа данных параметра.

    select COALESCE(? (int), ? (int), ? (int));
    56
    -78
    NULL
    |         56|
Пример
Проверить, содержат ли записи таблицы реальные значения.
create or replace table tst (i1 int, i2 int, i3 int);
insert into tst (i1,i2,i3) values(null,null,null);
insert into tst (i1,i2,i3) values(null,null,3);
insert into tst (i1,i2,i3) values(null,2,3);
insert into tst (i1,i2,i3) values(1,2,null);
insert into tst (i1,i2,i3) values(1,null,3);
insert into tst (i1,i2,i3) values(1,2,3);
select i1,i2,i3,decode(COALESCE(i1,i2,i3),null,'нет', 'да') from tst;
|   1|   2|   3|да |
|   1|NULL|   3|да |
|   1|   2|NULL|да |
|NULL|   2|   3|да |
|NULL|NULL|   3|да |
|NULL|NULL|NULL|нет|
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter