Oracle 中是否有等效的方法可以从子选择中获取数组,所以如果子选择的结果中有不止一行,最终结果中仍然只有一行?
例如:
select c.name, array(select order_id from ORDER o where o.customer_id = c.id)
from CUSTOMER c;
每个客户只会返回一行,其中每个返回行中的第二个值是 order_id 的数组。
您可以使用CURSOR:
select c.name, cursor(select order_id from ORDER o where o.customer_id = c.id)
from CUSTOMER c;
然后,您的数据库接口将有某种方式从游标结果中获取结果。