SQL:是否可以在select查询的列中返回表数据类型?

时间:2018-05-15 02:58:49

标签: sql subquery

你能在一个列中返回一个表(或子查询)吗?

这在将结果转换为JSON时非常有用。

例如:

select orderid, date, 
       (select itemdescription, price, quantity 
       from orderitems 
       where orderid = orders.orderid) as orderitems 
from orders

enter image description here

1 个答案:

答案 0 :(得分:1)

SQL中最接近的可能是ROW MULTISET类型的列,可以使用(a.o.)COLLECT和FUSION运算符构建/填充。

自2003年以来,这个特性已经在SQL标准中引入(不确定),但是实际的SQL产品实现这一点的可能性极小。 (虽然我模糊地记得我曾经在其他地方之前说过这一点,并且在一小时内有人用Oracle的一个例子回复了这样的查询。)

我的来源是Hugh Darwen的免费bookboon书“SQL:比较调查”。如果你提出这种“高级SQL”问题,你可能会发现这个问题特别有趣。