如何使用 SQL 在单列中获取以逗号分隔的值
How to get the values seperated by comma in a single column using SQL
我有以下 table 和预期的结果。请让我知道是否有可能实现结果。请参考附图。
您可以使用 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
table 应该有一个 dept_id
作为主键(无重复项)。
- 你的 table 叫做
department
实际上应该叫做 employee_departments
因为它是一个结合点 table,结合了两个不同的实体。
- 这个 table 应该使用
emp_id
作为 link 到 employee
,而不是 name
。即外键关系应该是employee
. 的主键
我有以下 table 和预期的结果。请让我知道是否有可能实现结果。请参考附图。
您可以使用 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
table 应该有一个dept_id
作为主键(无重复项)。 - 你的 table 叫做
department
实际上应该叫做employee_departments
因为它是一个结合点 table,结合了两个不同的实体。 - 这个 table 应该使用
emp_id
作为 link 到employee
,而不是name
。即外键关系应该是employee
. 的主键