any
Добавленный в: v1.1.0
Выбирает первое встретившееся значение столбца.
По умолчанию функция никогда не возвращает NULL, то есть игнорирует значения NULL во входном столбце.
Однако если функция используется с модификатором RESPECT NULLS, она возвращает первое считанное значение независимо от того, равно оно NULL или нет.
Подробности реализации
В некоторых случаях можно полагаться на порядок выполнения.
Это относится к случаям, когда SELECT выполняется из подзапроса, использующего ORDER BY.
Когда запрос SELECT содержит секцию GROUP BY или хотя бы одну агрегатную функцию, ClickHouse (в отличие от MySQL) требует, чтобы все выражения в секциях SELECT, HAVING и ORDER BY вычислялись по ключам или с помощью агрегатных функций.
Иными словами, каждый столбец, выбранный из таблицы, должен использоваться либо в ключах, либо внутри агрегатных функций.
Чтобы получить поведение, как в MySQL, можно поместить остальные столбцы в агрегатную функцию any.
Синтаксис
any(column)[ RESPECT NULLS]Псевдонимы: any_value, first_value
Аргументы
column— Имя столбца.Any
Возвращаемое значение
Возвращает первое встретившееся значение.
Any
Примеры
Пример использования
CREATE TABLE tab (city Nullable(String)) ENGINE=Memory;
INSERT INTO tab (city) VALUES (NULL), ('Amsterdam'), ('New York'), ('Tokyo'), ('Valencia'), (NULL);
SELECT any(city), anyRespectNulls(city) FROM tab;┌─any(city)─┬─anyRespectNulls(city)─┐
│ Amsterdam │ ᴺᵁᴸᴸ │
└───────────┴───────────────────────┘