跳转到主内容
跳转到主内容

groupConcat

groupConcat

引入于:v24.8

对一组字符串进行拼接,生成一个拼接后的字符串,可选使用分隔符分隔各元素,并可选设置元素数量上限。

注意

如果仅指定了分隔符而未指定 limit,则分隔符必须是第一个参数。如果同时指定了分隔符和 limit,则分隔符必须位于 limit 之前。

另外,如果在参数和自变量中指定了不同的分隔符,则仅会使用自变量中指定的分隔符。

语法

groupConcat[(delimiter [, limit])](expression)

别名: group_concat

参数

  • delimiter — 用于在拼接值之间插入的分隔字符串。该参数是可选的,如果未指定则默认为空字符串。String
  • limit — 指定要拼接的最大元素数量的正整数。如果存在更多元素,则多余的元素会被忽略。该参数是可选的。UInt*

自变量

  • expression — 输出待拼接字符串的表达式或列名。String
  • delimiter — 用于在拼接值之间插入的分隔字符串。该参数是可选的,如果未指定则默认为空字符串,或使用参数中提供的分隔符。String

返回值

返回一个字符串,由列或表达式的值拼接而成。如果分组没有元素或只有 null 元素,并且函数未指定仅 null 值的处理方式,则结果为 Nullable 类型的字符串,其值为 null。String

示例

不使用分隔符的基本用法

SELECT groupConcat(Name) FROM Employees;
JohnJaneBob

使用逗号作为分隔符(参数语法)

SELECT groupConcat(', ')(Name) FROM Employees;
John, Jane, Bob

使用逗号作为分隔符(参数语法)

SELECT groupConcat(Name, ', ') FROM Employees;
John, Jane, Bob

限制拼接元素的数量

SELECT groupConcat(', ', 2)(Name) FROM Employees;
John, Jane