在db2中遇到多行一列转为一行一列的需求时,用db2函数 LISTAGG可以实现该功能。语法如下:
SELECT [分组的字段 ] , LISTAGG([需要聚合的字段名], ',') FROM [表名] GROUP BY [分组的字段名] ;
设计以下实验,阐述该函数实现行转列的方法。
步骤1:用sql构造一张临时表数据如下:
create table test(id BIGINT,name varchar(20));
insert into test values(1,'a');
insert into test values(1,'b');
insert into test values(1,'c');
insert into test values(2,'d');
insert into test values(2,'e');
select S.id,listagg(S.name , ',') as name_new from test S group by S.id;