3.Oracle/PostgreSQL列内容拼接
一、Oracle列内容拼接
关键字:listagg…within group(order by …)
要求:将每个人的科目,使用逗号拼接,组成字段“课程”
demno:
with 排名表 as
(select 'A' as 姓名 , '语文' 科目 FROM dual
union all
select 'A' as 姓名 , '数学' 科目 FROM dual
union all
select 'B' as 姓名 , '语文' 科目 FROM dual
union all
select 'B' as 姓名 ,'英语' 科目 FROM dual
)
SELECT 姓名,listagg(科目,',') WITHIN GROUP(ORDER BY 姓名) 课程 FROM 排名表 GROUP BY 姓名
二、PostgreSQL列内容拼接
关键字:string_agg
要求:将每个人的科目,使用逗号拼接,组成字段“课程”
demno:
with 排名表 as
(select 'A' as 姓名 , '语文' 科目
union all
select 'A' as 姓名 , '数学' 科目
union all
select 'B' as 姓名 , '语文' 科目
union all
select 'B' as 姓名 ,'英语' 科目
)
select 姓名,string_agg(科目,',') 课程 from 排名表 group by 姓名