一直以来对于聚合还是停留在数字上的聚合,遇到了在Oracle数据库中实现字符串聚合的问题,记录一下。
在不写自定义函数的情况下,使用**wm_concat(字段名)**这个方法便可以实现字符串的聚合。
该函数是Oracle的内置函数,会使用’,'将拼接字段内容隔开
在11g版本使用时需要用to_char方法对结果进行类型转换,否则结果为变成为clob类型的数据
示例:
id | name | class |
---|---|---|
1 | tom | 1班 |
2 | jerry | 1班 |
3 | Clark | 2班 |
4 | Bruce | 2班 |
现在需要记录每个班级所有学生的姓名
SELECT TO_CHAR(WM_CONCAT(NAME)) SUMNAME,CLASS FROM T_STUDENT GROUP BY CLASS;
得到结果
sumname | class |
---|---|
tom,jerry | 1班 |
Clark,Bruce | 2班 |