I am confused with oracle IN
and EXISTS
. I have below requirement.
I need to get all the employees whose names are in-
select * from emp where ename in('smith','brown','john','johnson');
Can i use EXISTS
here? Also IN
clause has 1000 limitation. Does EXISTS
also has any such limitation?
Thanks!
IN
picks the list of matching values. EXISTS
returns the boolean values like true or false. Exists is faster than in.
Example
IN
select ename from emp e where mgr in(select empno from emp where ename='KING');
EXISTS
select ename from emp e
where exists (select 1 from emp where e.mgr = empno and ename = 'KING');
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