我想在SQL中编写一个查询。有人可以帮我写下面的结果表
的oracle sql查询Table 1 Data
prodno description
1 Laptop
2 Charger
3 Mouse
Table 2 Data
prodno prodset_no
1 1
2 1
3 1
1 2
3 2
1 3
2 3
Result Table
prodset_no prodset_desc
1 Laptop,Charger,Mouse
2 Laptop,Mouse
3 Laptop,Charger
答案 0 :(得分:2)
JOIN
两个表然后使用listagg
生成逗号分隔输出:
select t2.prodset_no,
listagg(t1.description, ',') within group (
order by t1.prodno
) prodset_desc
from table2 t2
join table1 t1 on t2.prodno = t1.prodno
group by t2.prodset_no;
另外,值得注意的是listagg
的限制为4000字节。如果达到该限制,您可以使用XMLAGG
或重新考虑问题,而不是在SQL中执行,而是在应用程序代码中处理它。