Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

any

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 │ ᴺᵁᴸᴸ                  │
└───────────┴───────────────────────┘
Navigation