listagg函数使用方法就像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来,如:
学生表(t_student):
id name
1 小明
2 小红
课程表(t_course):
id student_id name
1 1 语文
2 1 数学
3 2 语文
现在要想关联两张表显示结果如下:
姓名 所选课程
小明 语文,数学
小红 语文
则可以使用listagg函数:
select s.name as 姓名,listagg(c.name,',') with group(order by c.name) as 所选课程
from t_student s
right join t_course c on s.id = c.student_id
group by s.name
listagg最基础的用法
LISTAGG(列转行字段,连接符) WITHIN GROUP( ORDER BY 连接排序)