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。