您的位置:首页 > 数据库 > Oracle

oracle 中 in函数

2016-04-27 10:51 726 查看
select * from emp in empno in(1,2,3......);

in 函数的使用限制:in()中的数据有最多1000条的限制

可用exists 替换,如果主表的话用exist会快一些,如果相反的话,还是in快一些

     

有两个简单例子,以说明 "exists"和"in"的效率问题

1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;

  T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高。

2) select * from T1 where T1.a in (select T2.a from T2) ;

  T1数据量非常大而T2数据量小时,T1>>T2 时,2) 的查询效率高。

因为exists就是为了in都不能跟大数据而生的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: