sql/oracle选择以逗号分隔的值



第一个表是这样的:table_1

00112.000112.000210.01038.01018.020311.0

您的查询只显示了一半的任务:您只查看table_1。对于GROUP BY group_number,您告诉DBMS仅为每个group_number选择一行。这对那张桌子很合适。但是您不能SELECT *,因为每个group_number都有几行。如何是DBMS应该知道哪一行的值显示然后为group_number?

从该查询中删除*以使其有效。选择group_number代替。然后将此结果加入table_2

select *
from table_2 t2
left outer join
(
select
group_number,
listagg(rate, ',') within group (order by c_id) as rates
from table_1
group by group_number
) t1 on t1.group_number = t2.group_number
order by t2.group_number, t2.date;

最新更新