跳到主要内容
跳到主要内容

groupConcat

从一组字符串计算一个连接后的字符串,可选择使用分隔符分隔,并可选择限制最大元素数量。

语法

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

参数

  • expression — 表达式或列名,输出要连接的字符串。
  • delimiter — 一个 字符串,将用于分隔连接的值。此参数是可选的,如果未指定,则默认为空字符串或来自参数的分隔符。

参数

  • delimiter — 一个 字符串,将用于分隔连接的值。此参数是可选的,如果未指定,则默认为空字符串。
  • limit — 一个正 整数,指定要连接的最大元素数量。如果存在更多元素,则忽略多余的元素。此参数是可选的。
注意

如果指定了分隔符但没有限制,则它必须是第一个参数。如果同时指定了分隔符和限制,则分隔符必须在限制之前。

此外,如果参数和实参中指定了不同的分隔符,则仅使用实参中的分隔符。

返回值

  • 返回一个 字符串,其中包含列或表达式的连接值。如果组没有元素或只有 null 元素,并且该函数没有为仅 null 值指定处理方式,则结果是一个可为空的字符串,其值为 null。

示例

输入表

┌─id─┬─name─┐
│ 1 │ John │
│ 2 │ Jane │
│ 3 │ Bob │
└────┴──────┘
  1. 不带分隔符的基本用法

查询

SELECT groupConcat(Name) FROM Employees;

结果

JohnJaneBob

这会将所有名称连接成一个连续的字符串,没有任何分隔符。

  1. 使用逗号作为分隔符

查询

SELECT groupConcat(', ')(Name)  FROM Employees;

SELECT groupConcat(Name, ', ')  FROM Employees;

结果

John, Jane, Bob

此输出显示以逗号后跟空格分隔的名称。

  1. 限制连接元素的数量

查询

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

结果

John, Jane

即使表中还有更多名称,此查询也将输出限制为前两个名称。