Функция 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,
предыдущаяследующая