按照某字段进行分组,并把其中一列的值合并显示在一个字段中。这里用一个实例说明,主要语法为:listagg within group
1、建表 插入 测试 数据
create table DEMO( id NUMBER, name VARCHAR2(20), nums NUMBER);insert into demo values(1, '苹果', 1000);insert into demo values(1, '鸭梨', 2000);insert into demo values(1, '香蕉', 4000);insert into demo values(2, '橘子', 5000);insert into demo values(3, '西瓜', 3000);insert into demo values(4, '葡萄', 3500);insert into demo values(5, '芒果', 4200);insert into demo values(5, '哈密', 5500);
2、分组合并查询sql
将NAME之间以 逗号 连接 , 并且按照ID分类。
SELECT ID, listagg(NAME, ',') within group(ORDER BY ID) AS NAMES FROM DEMO T GROUP BY ID;
以上是Oracle的逻辑,下面提一下MySQL的逻辑,效果跟Oracle一样,只是函数有区别。
---MySQL效果(默认分隔符为