What shall be the equivalent of below Sql Server query in Oracle:
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
Please note that the actual query is very different but the concept is same. Please pardon me for any syntax error in above query.
I tried below Oracle query:
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
But, it is giving below error:
Error at Command Line:6 Column:18
Error report:
SQL Error: ORA-00905: missing keyword
00905. 00000 - "missing keyword"
*Cause:
*Action:
On clause was missing after join. So, I convert the query into group by query and it works:
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With