答案 0 :(得分:2)
您可以使用listagg()
:
select e.id, e.name, e.sal,
listagg(d.dept, ',') within group (order by d.dept_id) as depts,
listagg(d.dept_id, ',') within group (order by d.dept_id) as dept_ids,
from employee e left join
department d
on e.name = d.name
group by e.id, e.name, e.sal;
有关数据模型的一些评论。
department
表中应有一个dept_id
作为主键(没有重复项)。department
的表应真正称为employee_departments
,因为它是结合两个不同实体的联结表。emp_id
作为employee
的链接,而不是name
。也就是说,外键关系应该是employee
的主键。