Oracle 中的以下 Sql Server 查询应等效于什么:
select dd.dname, e.ename
from emp e
outer apply
(select top 1 dname from dept d where d.did=e.did order by bdate) dd
请注意,实际查询非常不同,但概念相同。请原谅我在上述查询中的任何语法错误。
我尝试了以下 Oracle 查询:
select dd.dname, e.ename
from emp e
left join
(select * from
(select dname from dept d where d.did=e.did order by bdate)
where rownum=1) dd
但是,它给出了以下错误:
Error at Command Line:6 Column:18
Error report:
SQL Error: ORA-00905: missing keyword
00905. 00000 - "missing keyword"
*Cause:
*Action:
最佳答案
加入后缺少 On 子句。因此,我按查询将查询转换为组,它起作用了:
select dd.dname, e.ename
from emp e
left join
(select min(bdate), dname, did from dept d group by dname, did)dd
on dd.did=e.did
关于sql-server - 将 SQL Server Apply 查询迁移到 Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30801387/