Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

groupFormat

使用输出格式对每个组中的行进行格式化,并将格式化后的数据作为字符串返回。这与 formatRow 类似,但它作用于整个组,并且可以使用基于块的格式。

语法

groupFormat(format)(x, y, ...)

参数

  • format — 输出格式名称,例如 JSONEachRowCSVTabSeparated

实参

  • x, y, ... — 将格式化为行的表达式。至少需要一个参数。

返回值

  • 一个 String,包含该分组的格式化输出。

NULL 处理

groupArraygroupConcat 一样,如果 groupFormat 的任一参数为 NULL,则会跳过该行;这类行不会出现在格式化输出中。当参数为 Nullable 类型时,结果类型为 Nullable(String);而对于所有行都被跳过的分组,以及类型为 Nullable(Nothing) 的无类型字面量 NULL 参数,都会通过通用的 Null 组合器返回 NULL

SELECT groupFormat('JSONEachRow')(if(number = 0, NULL, number))
FROM numbers(3);
-- {"c1":1}
-- {"c1":2}

示例

JSONEachRow 的基础用法

SELECT groupFormat('JSONEachRow')(number, toString(number))
FROM numbers(3);

结果:

{"c1":0,"c2":"0"}
{"c1":1,"c2":"1"}
{"c1":2,"c2":"2"}

groupFormat

Introduced in:v

使用指定的输出格式对每个组中的行进行格式化,并将结果作为字符串返回。

格式名称作为参数传入,要格式化的列则作为 arguments 传入。 在格式化后的输出中,列名会生成为 c1、c2、…。

语法

groupFormat(format)(x, y, ...)

参数

  • format — 输出格式名称。例如,JSONEachRow、CSV、TabSeparated。String

实参

  • x, y, ... — 要格式化为行的表达式。Any

返回值

该组的格式化输出。String

示例

基本用法

SELECT groupFormat('JSONEachRow')(number, toString(number))
FROM numbers(3)
{"c1":0,"c2":"0"}\n{"c1":1,"c2":"1"}\n{"c1":2,"c2":"2"}\n
Navigation