Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Migrating SQL Server Apply query to Oracle

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:
like image 270
Vikas Sharma Avatar asked Mar 08 '26 03:03

Vikas Sharma


1 Answers

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
like image 165
Vikas Sharma Avatar answered Mar 10 '26 22:03

Vikas Sharma