Перейти к содержимому
Последнее обновление

COALESCE

Описание​

Вычисляет выражения в списке аргументов слева направо и возвращает первое из них со значением, отличным от NULL. Если все аргументы равны NULL, возвращает NULL.

Синтаксис​

COALESCE( <expr1> [ , ... , <exprN> ] )

Параметры​

Обязательный параметр​

  • <expr1>: Выражение любого типа.

Переменное число параметров​

  • Функция COALESCE поддерживает переменное число параметров.

Возвращаемое значение​

Возвращает первое выражение в списке аргументов со значением, отличным от NULL. Если все аргументы равны NULL, возвращает NULL.

Примечания по использованию​

  1. Типы аргументов должны по возможности совпадать.
  2. Если типы аргументов различаются, функция попытается привести их к одному типу. Правила преобразования см. в разделе Преобразование типов
  3. В настоящее время в качестве аргументов поддерживаются только следующие типы:
    • Строковые типы (String/VARCHAR/CHAR)
    • Логический тип (Boolean)
    • Числовые типы (TinyInt, SmallInt, Int, BigInt, LargeInt, Float, Double, Decimal)
    • Типы даты и времени (Date, DateTime, TimestampNs)
    • Тип Bitmap (Bitmap)
    • Полуструктурированные типы (JSON, Array, MAP, Struct)

Примеры​

  1. Преобразование типов аргументов

    select coalesce(null, 2, 1.234);
    +--------------------------+
    | coalesce(null, 2, 1.234) |
    +--------------------------+
    | 2.000 |
    +--------------------------+

    Поскольку третий аргумент "1.234" имеет тип Decimal, аргумент "2" преобразуется в тип Decimal.

  2. Все аргументы равны NULL

    select coalesce(null, null, null);
    +----------------------------+
    | coalesce(null, null, null) |
    +----------------------------+
    | NULL |
    +----------------------------+