Последнее обновление
COALESCE
Описание
Вычисляет выражения в списке аргументов слева направо и возвращает первое из них со значением, отличным от NULL. Если все аргументы равны NULL, возвращает NULL.
Синтаксис
COALESCE( <expr1> [ , ... , <exprN> ] )
Параметры
Обязательный параметр
<expr1>: Выражение любого типа.
Переменное число параметров
- Функция
COALESCEподдерживает переменное число параметров.
Возвращаемое значение
Возвращает первое выражение в списке аргументов со значением, отличным от NULL. Если все аргументы равны NULL, возвращает NULL.
Примечания по использованию
- Типы аргументов должны по возможности совпадать.
- Если типы аргументов различаются, функция попытается привести их к одному типу. Правила преобразования см. в разделе Преобразование типов
- В настоящее время в качестве аргументов поддерживаются только следующие типы:
- Строковые типы (String/VARCHAR/CHAR)
- Логический тип (Boolean)
- Числовые типы (TinyInt, SmallInt, Int, BigInt, LargeInt, Float, Double, Decimal)
- Типы даты и времени (Date, DateTime, TimestampNs)
- Тип Bitmap (Bitmap)
- Полуструктурированные типы (JSON, Array, MAP, Struct)
Примеры
-
Преобразование типов аргументов
select coalesce(null, 2, 1.234);+--------------------------+
| coalesce(null, 2, 1.234) |
+--------------------------+
| 2.000 |
+--------------------------+Поскольку третий аргумент "1.234" имеет тип Decimal, аргумент "2" преобразуется в тип Decimal.
-
Все аргументы равны NULL
select coalesce(null, null, null);+----------------------------+
| coalesce(null, null, null) |
+----------------------------+
| NULL |
+----------------------------+