Sql 结果表说明
我想用SQL编写一个查询。有人能帮我为下面的结果表编写oracle sql查询吗Sql 结果表说明,sql,oracle,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,M
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
JOIN
两个表,然后使用listag
生成逗号分隔的输出:
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;
另外,值得注意的是,
listag
的限制为4000字节。如果达到该限制,您可以使用XMLAGG
或重新考虑问题,而不是在SQL中执行,而是在应用程序代码中处理它。将两个表连接起来,然后使用listag
生成逗号分隔的输出:
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;
另外,值得注意的是,listag
的限制为4000字节。如果您达到了这个限制,您可以使用XMLAGG
,或者重新思考问题,而不是在SQL中执行,而是在应用程序代码中处理它