Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


GROUP_CONCAT

📄字数 1.1K
👁️阅读量 加载中...

功能描述

将同一个分组中的非 NULL 值连接起来,返回一个字符串结果。

语法格式

sql
GROUP_CONCAT([ALL | DISTINCT] expr[, expr ...]
    [order_by_clause]
    [SEPARATOR delimiter])
  [OVER([analytic_clause])]

输入参数

  • expr:被连接的列,VARCHAR 类型,或能隐式转换为 VARCHAR 类型的其他类型。
  • order_by_clause:可选的排序子句,对结果中的值进行排序,排序子句的详细说明请参考 排序子句
  • delimiter:可选的分隔符,默认使用逗号(,)作为分隔符;要显式指定分隔符,使用 SEPARATOR 后跟字符串常量值,分隔符可以是动态参数(如预编译语句参数)。
  • analytic_clause:可选的分析子句,支持分组子句,排序子句以及范围子句,分析子句的详细说明请参考 analytic_clause

提示

  • GROUP_CONCAT 函数可以在 OVERorder_by_clause 子句中同时指定排序,此时排序结果以 GROUP_CONCAT 中的 order_by_clause 子句中的排序结果为准。
  • 排序子句只支持 简单表达式复杂表达式函数表达式,不支持 布尔表达式CASE表达式 等。
  • GROUP_CONCAT 支持多参数聚合,最大支持的参数个数和 GROUP_CONCAT 函数的结果允许的最大记录长度相关,最大记录长度为 60000 字节。

输出结果

返回 VARCHAR 类型,输入参数全为 NULL 时,输出结果为 NULL;否则函数将排除 NULL 值,对非 NULL 值进行拼接。

提示

  • GROUP_CONCAT() 函数的结果允许的最大记录长度受系统参数 GROUP_CONCAT_MAX_LEN 的影响,GROUP_CONCAT_MAX_LEN 的取值范围为:[4, 60000) 字节,默认值为:1024 字节。
  • 系统参数 GROUP_CONCAT_MAX_LEN 的作用域为全局,暂不支持会话级设置。所以一旦修改值,会影响当前和之后连接的用户使用该值。

示例

sql
SQL> CREATE TABLE tab_test_group_concat(column1 INTEGER, column2 VARCHAR);

SQL> INSERT INTO tab_test_group_concat VALUES(1, 'sada')(10, 'da')(4, 'a')(11, 'a');

SQL> SELECT * FROM tab_test_group_concat;

+---------+---------+
| COLUMN1 | COLUMN2 |
+---------+---------+
| 1       | sada    |
| 10      | da      |
| 4       | a       |
| 11      | a       |
+---------+---------+

SQL> SELECT GROUP_CONCAT(column2) FROM tab_test_group_concat GROUP BY column2;

+-------+
| EXPR1 |
+-------+
| da    |
| sada  |
| a,a   |
+-------+

SQL> SELECT GROUP_CONCAT(DISTINCT column2) FROM tab_test_group_concat ORDER BY column1;

+-----------+
|   EXPR1   |
+-----------+
| a,da,sada |
+-----------+