交叉应用缺少的关键字
Posted
技术标签:
【中文标题】交叉应用缺少的关键字【英文标题】:Cross apply missing keyword 【发布时间】:2018-11-17 07:05:49 【问题描述】:我正在 Oracle(11g) 中编写查询:
select DBTM,AVNR from E_MW_01Min_MIT m
cross apply(
select Avnr,XDatum1 from E_MW_01DAY_MEX d
where d.AVnr = m.avnr
and d.XDatum1 = m.DBTM
)
但它给了我错误
ORA-00905: missing keyword
问题出在哪里? 谢谢
【问题讨论】:
您使用的是哪个版本的 Oracle? 从 v.12c 开始,Oracle 支持 OUTER APPLY/CROSS APPLY 构造 【参考方案1】:Oracle 12c 版本引入了这个关键字(CROSS APPLY 或 OUTER APPLY)。 你可以看到这个链接: cross apply giving missing keyword error
【讨论】:
【参考方案2】:cross apply
在该版本的 Oracle 中不可用。只需改用join
:
select m.DBTM, d.AVNR
from E_MW_01Min_MIT m JOIN
E_MW_01DAY_MEX d
ON d.AVnr = m.avnr AND d.XDatum1 = m.DBTM ;
这实际上使用JOIN
更容易表达,所以我认为尝试APPLY
没有任何好处,即使数据库确实支持它。
【讨论】:
以上是关于交叉应用缺少的关键字的主要内容,如果未能解决你的问题,请参考以下文章