跳至主要内容

groupConcat

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

语法

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

参数

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

如果在没有 limit 的情况下指定了 delimiter,则它必须是第一个参数。如果同时指定了 delimiter 和 limit,则 delimiter 必须位于 limit 之前。

返回值

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

示例

输入表

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

查询

SELECT groupConcat(Name) FROM Employees;

结果

JohnJaneBob

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

  1. 使用逗号作为分隔符

查询

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

结果

John, Jane, Bob

此输出显示名称以逗号加空格分隔。

  1. 限制连接元素的数量

查询

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

结果

John, Jane

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