5 sql-server oracle outer-apply
在以下示例中,我将tbA.ID传递给tbC查询。在这种情况下,我使用了 SqlServer 的 OUTER APPLY 运算符。
SELECT
...
FROM (SELECT ID FROM TableA ...) tbA
OUTER APPLY (SELECT ... FROM TableB tbB WHERE tbA.ID = tbB.ID) tbC
...
Run Code Online (Sandbox Code Playgroud)
在 Oracle 中,我们没有 OUTER APPLY 运算符。那么,如何在不修改查询结构的情况下将值 (tbA.ID) 从左侧查询传递到连接的右侧查询 (tbC)?
Oracle 中的 OUTER APPLY 是否有其他选择?
根据评论编辑:
在 Oracle 12 中支持 OUTER APPLY(可能作为 SQL 标准的一部分)。由于您的 SQL 是由实体框架生成的,因此您所需要做的就是连接到 Oracle 并查看生成的查询输出是什么样子。我觉得你的问题是基于恐惧,“它在 Oracle 中如何运作?”。运行代码看看。
除此之外,Oracle 内联查询的工作方式就像表一样。你的问题是,“还有其他选择吗……?” - 是的,见下文:
SELECT
...
FROM
(SELECT ID FROM TableA ...) tbA left join
(SELECT ID FROM TableB ...) tbB On tbA.ID = tbB.ID
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9216 次 |
| 最近记录: |