Функция coalesce

  • Часть 1
  • | 2

Функция COALESCE используется для замены вывода неопределенного значения на вывод любого другого и имеет следующий синтаксис:

COALESCE (<выражение1> , <выражение2> [, <выражение3> ]...) .

Эта функция имеет два или более параметров и возвращает значение первого из параметров, отличного от NULL. Функция COALESCE фактически представляет собой сокращение операции CASE и в зависимости от числа аргументов может быть заменена следующими эквивалентными ей конструкциями:

-   конструкция    COALESCE    (<выражение1>,    <выражение2>)    эквивалентна конструкции

CASE WHEN <выражение1> IS NOT NULL THEN <выражение1>

ELSE<выражение2> END;

-   конструкция COALESCE (<выражение1>, <выражение2>,..., <выражениеN>) дляN >= 3 эквивалентна конструкции

CASE WHEN <выражение1> IS NOT NULL THEN <выражение1>

ELSE COALESCE (<выражение2>,..., <выражениеN>) END. Таким  образом,  эквивалентная  конструкция  CASE  всегда  содержит  в качестве условия поиска проверку соответствующего выражения из списка функции COALESCE на неравенство NULL.

Например, требуется вывести информацию о датах выполнения ремонтных заявок, поступивших от абонентов с номерами лицевых счетов '005488', '115705' и '080270'. Если дата выполнения неизвестна, вывести дату поступления заявки. Если ни дата поступления, ни дата выполнения не известны, то вывести 'Дата неизвестна'. Соответствующий запрос будет выглядеть следующим образом: SELECT RequestCD,

COALESCE(ExecutionDate,IncomingDate,

'Датане известна') AS Date_Info FROM Request

WHERE AccountCD IN ('005488', '115705', '080270');. Результат выполнения запроса представлен на рис. 3.43. Представим данный запрос с помощью операции CASE в следующем виде: SELECT RequestCD,

предыдущаяследующая