Условные функции

Условные функции в RQL обеспечивают выполнение логических и сравнительных операций, позволяя определить выполнение различных выражений в зависимости от заданных условий.

Набор поддерживаемых функций RQL и их поведение зависят от версии установленного ClickHouse. Если функция не поддерживается в используемой версии ClickHouse, она также не будет доступна в RQL. Ознакомиться с актуальным списком функций и их поведением можно в официальном репозитории ClickHouse, выбрав нужную версию из веток. Например: список условных функций для ClickHouse 24.7.

Table 1. Условные функции
Функция Описание

if(cond, then, else)

Выполняет условное ветвление. Если условие cond истинно (не равно нулю), возвращает результат выражения then. Если cond ложно (равно нулю) или NULL, возвращает результат выражения else. Типы выражений then и else должны быть схожими.

multiIf(cond_1, then_1, cond_2, then_2, …​, else)

Позволяет компактно записать оператор CASE. Функция принимает условия cond_N и соответствующие результаты then_N, а также результат else для случая, когда ни одно из условий не выполнено. Поддерживает использование краткого вычисления.

greatest(…​)

Возвращает наибольшее значение из списка значений. Все элементы списка должны быть сопоставимыми типами. Тип возвращаемого значения может быть продвинут до более общего типа для сравнения.

least(…​)

Возвращает наименьшее значение из списка значений. Аналогично greatest, все элементы списка должны быть сопоставимыми типами, и тип возвращаемого значения может быть продвинут.