listagg

最近更新时间: 2025-02-18 16:02:00

  • 复制
    复制成功
listagg (filedname,',') WITHIN GROUP (ORDER BY filedname)

行转列函数

  • 复制
    复制成功
postgres=# create table person
 (
 deptno varchar2(10),
ename  varchar(20)
);
CREATE TABLE
postgres=# insert into person values('20','aaa');
INSERT 0 1
postgres=# 
postgres=# insert into person values('20','bbb');
INSERT 0 1
postgres=# 
postgres=# insert into person values('20','ccc');  
INSERT 0 1
postgres=# 
postgres=# insert into person values('21','ddd');
INSERT 0 1
postgres=# 
postgres=# insert into person values('21','eee');
INSERT 0 1
postgres=# select
postgres-#     deptno,
postgres-#     listagg (ename,',') WITHIN GROUP (ORDER BY ENAME)
postgres-# from
postgres-#     person   
postgres-# group by
postgres-#     deptno ; 
 deptno |   listagg   
--------+-------------
 20     | aaa,bbb,ccc
 21     | ddd,eee
(2 rows)