结果表说明

时间:2017-03-04 04:27:57

标签: sql oracle

我想在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

1 个答案:

答案 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中执行,而是在应用程序代码中处理它。