SELECT
teacher.id,
regexp_replace(listagg(Concat(teacher.name,teacher.remark), ',' ) within GROUP ( ORDER BY student.name), '([^,]+)(,\1)+', '\1') AS tercher_info
FROM
student student
LEFT JOIN teacher teacher ON student.teacher_id = student.id
group by student.teacher_id;
#拼接varchar类型字段:Concat(teacher.name,teacher.remark)
#根据分组,把数据拼接在一起:listagg(Concat(teacher.name,teacher.remark), ',' ) within GROUP ( ORDER BY student.name)
#listagg去重:regexp_replace(listagg(Concat(teacher.name,teacher.remark), ',' ) within GROUP ( ORDER BY student.name), '([^,]+)(,\1)+', '\1')
oracle 拼接varchar类型字段,listagg 合并行数据,listagg 去重
于 2024-05-14 15:07:45 首次发布