14

私はオラクルINと混同していEXISTSます。以下の要件があります。

名前が入っているすべての従業員を取得する必要があります-

select * from emp where ename in('smith','brown','john','johnson');

ここは使えEXISTSますか?また、IN句には 1000 の制限があります。EXISTSまた、そのような制限はありますか?

ありがとう!

4

2 に答える 2

3

IN一致する値のリストを選択します。EXISTStrue や false などのブール値を返します。Exists は in よりも高速です。

select ename from emp e where mgr in(select empno from emp where ename='KING');

存在する

select ename from emp e 
  where exists (select 1 from emp where e.mgr = empno and ename = 'KING'); 
于 2014-01-04T04:02:00.840 に答える
2

簡単に言えば、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'))

だからあなたはそれがあなたがここで必要としているものではないことがわかります

于 2012-10-15T12:53:44.177 に答える