sql - SQL:是否可以在选择查询的列中返回表数据类型?
问题描述
您可以在列中返回表(或子查询)吗?
这将非常有用,尤其是在将结果转换为 JSON 时。
例如:
select orderid, date,
(select itemdescription, price, quantity
from orderitems
where orderid = orders.orderid) as orderitems
from orders
解决方案
SQL 中最接近的可能是 ROW MULTISET 类型的列,可以使用 (ao) COLLECT 和 FUSION 运算符构建/填充。
SQL 标准可能从 2003 年就引入了这个特性(不确定这一点),但任何实际的 SQL 产品都极不可能费心实现这个特性。(虽然我隐约记得我曾经在其他地方说过这句话,在一个小时内,有人回复了一个 Oracle 正在执行此类查询的示例。)
我的资料来源是 Hugh Darwen 的免费图书书籍“SQL:比较调查”。如果您提出这类“高级 SQL”问题,您可能会发现这个问题特别有趣。
推荐阅读
- docker - 无法从 MacOS 中的主机访问 tezos 节点(在 Docker 中)
- java - 用列表转换对象
到不可变列表 - python - 关于自动化无聊的东西的问题:第 4 章
- python - Scipy: signal.detrend (type='constant' ) 究竟做了什么时间序列数据集,我可以在 python 中反转 signal.detrend 吗?
- elasticsearch - 如何将我的输入语句转换为 json 以将其作为输出参数传递?
- hl7-fhir - 将批量数据发送到 Azure FHIR 服务器
- c# - Microsoft 如何从 DLL 的元数据中隐藏 C# 内部类?
- regex - 正则表达式在拆分所有大写字母时仅找到 1 个匹配项
- python - 是否有一个 Python 函数可以在两个相等长度的字符串之间进行所有可能的替换?
- python-3.x - 回复键盘标记