GROUP_CONCAT(expr)bash
该函数将非空列值按照分组条件进行合并并最终返回。若是有空值,则返回为空,其完整语法以下:ide
GROUP_CONCAT([DISTINCT] expr
[,expr
...]函数
[ORDER BY {unsigned_integer
| col_name
| expr
}spa
[ASC | DESC] [,col_name
...]]code
[SEPARATOR str_val
])it
举例 列1:io
SELECT EMP_ID, SUM(VALUE1), SUM(VALUE2), SUM(VALUE3), GROUP_CONCAT(REAS_1 SEPARATOR ';'), GROUP_CONCAT(REAS_2), GROUP_CONCAT(REAS_3) FROM ACT_GP_TEST GROUP BY EMP_ID
列2:
class
SELECT EMP_ID, SUM(VALUE1), SUM(VALUE2), SUM(VALUE3), GROUP_CONCAT(REAS_1,REAS_2,REAS_3 SEPARATOR ';') FROM ACT_GP_TEST GROUP BY EMP_ID
上面列1和列2的区别在于,列2是将字段REAS_1,REAS_2,REAS_3做为一个完整的字段逐条合并。变量
该函数的最大长度收到环境变量group_concat_max_len的限定,其默认值为1024,固然能够设置的更高。同时有效的最大返回长度也受
语法max_allowed_packet的约束。
在运行是修改group_concat_max_len
的语法以下:
SET [GLOBAL | SESSION] group_concat_max_len = val;
返回的结果是二进制仍是非二进制字符,取决于函数内取值字段的自己。通常当
group_concat_max_len
<=512时,为VARCHAR或VARBINARY,当大于该值时为TEXT和BLOB。