首页 > 解决方案 > SQL:是否可以在选择查询的列中返回表数据类型?

问题描述

您可以在列中返回表(或子查询)吗?

这将非常有用,尤其是在将结果转换为 JSON 时。

例如:

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

在此处输入图像描述

标签: sqlsubquery

解决方案


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

SQL 标准可能从 2003 年就引入了这个特性(不确定这一点),但任何实际的 SQL 产品都极不可能费心实现这个特性。(虽然我隐约记得我曾经在其他地方说过这句话,在一个小时内,有人回复了一个 Oracle 正在执行此类查询的示例。)

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


推荐阅读