Oracle IN vs存在差异?

use*_*403 14 sql oracle

我很困惑与Oracle INEXISTS.我有以下要求.

我需要让所有名字都在的员工 -

select * from emp where ename in('smith','brown','john','johnson');
Run Code Online (Sandbox Code Playgroud)

我可以EXISTS在这里使用吗?此外IN子句1000的限制.是否EXISTS还有任何这样的限制?

谢谢!

pau*_*aul 3

简而言之,EXISTS通常用于检查另一个(或同一个)表中是否存在满足条件的行。

你使用的 SQLEXISTS看起来像这样:

select *
from   emp e
where  exists(select * from emp e2 where e.empno = e2.empno and e2.ename in ('smith', 'brown', 'john', 'johnson'))
Run Code Online (Sandbox Code Playgroud)

所以你可以看到这不是你需要的