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 姓名

本文介绍如何使用Oracle的LISTAGG及PostgreSQL的STRING_AGG函数实现将表中与姓名相同的科目字段用逗号进行拼接,最终形成一个新的字段“课程”。通过具体示例展示了这两种数据库环境下实现这一功能的方法。
5409

被折叠的 条评论
为什么被折叠?



