请问oracle中这句话将in改为exists应该如何修改? 谢谢!

select empno,ename,job from emp where job in(select job from emp where deptno=10) and deptno=20;

第1个回答  2011-03-05
select empno,ename,job from emp t1 where exists(select * from emp t2 where deptno=10 and t1.job=t2.job) and deptno=20;本回答被提问者采纳
第2个回答  2011-03-05
emp t1那里一定要有别名
select empno,ename,job
from emp t1
where deptno=20
and exists (select 1 from emp where deptno=10 and job = t1. job)
第3个回答  2011-03-05
这句说SQL命令未正确结束 是通过S1来关联的吗? update data.v_8631_当然两个表任意一个数据量大时in效率都会很低,果真如此的话可以学着转成
第4个回答  2011-03-05
select empno,ename,job from emp where exists(select job from emp where deptno=10) and deptno=20;

请问oracle中这句话将in改为exists应该如何修改? 谢谢!
select empno,ename,job from emp t1 where exists(select * from emp t2 where deptno=10 and t1.job=t2.job) and deptno=20;

oracle in 改为exists形式
SELECT t00km010eo.createtime ,t00km010eo.t00km006id ,t00km010eo.uuid ,t00km006eo.uuid AS uuid1 FROM t00km010 t00km010eo ,t00km006 t00km006eo --select ,from语句不能修改 WHERE t00km010eo.t00km006id(+) = t00km006eo.uuid AND EXISTS (SELECT 1 FROM t00km010 b WHERE b....

oracle中exists用法
在Oracle数据库开发中,exists这一操作被广泛应用,它能提升SQL查询的效率,尤其在替换in操作时更为显著。以下是exists的一些基本用法:当需要从表a中获取那些id在关联表b中存在的记录时,可以使用以下语句:SELECT * FROM a WHERE EXISTS (SELECT 1 FROM b WHERE a.id = b.id);相反,如果要获取a...

关于oracle中的in和exists的效率问题
单说in和exsist,in的效率较差。原理是什么我也不清楚,用数据库的人都这么说。

Oracle中如何将数据用于exists
你的数据明显就是可以使用 in 的,又不能使用 in ,只好 把这一组数据写到一个表里,这样就可以不用 in 而用 exists 了。几千条数据,你做一个临时表B,把数据写入临时表B里,然后用 select * from A where exists (select 1 from B where A.id = b.id)...

oracle中exists用法
例子:select * from table_test a where exists (select 1 from scott.carol_tmp where pps_master=a.pps_master);这个sql是要检查table_test中的pps_master是否在carol_tmp中。其实用in也可以实现同样的效果,但是in的话效率要低些,特别是碰上一些大表。用exists和in的性能就体现出来了。

Oracle中的EXISTS与IN
传统上认为,如果子查询的条件更具选择性(selective),就用in;而如果父查询(外层查询)的条件更具选择性(selective),就用exist。具体的内容可以参考以下oracle原厂的手册,不好意思,oracle的原厂手册都是英文版的。对于你举的那个例子,用in和用or是一样的,因为它们的执行计划肯定是一样的。另...

关于Oracle中in和exists的区别
in 是返回的结果集 比如你只运行这一句 select sno from sc where cno='c002'返回的是一列sno 但是exists则不同,返回的是布尔值 虽然里边那个没法单独运行 select * from sc a where cno='c001' and exists(select sno from sc b where cno='c002' and a.sno=b.sno) ;后边必须要写上两者...

Oracle SQL的exists与in
两个用法本来就有区别,IN判断字段的值有没有列表中,列表中的值少的情况下直接用IN,多的情况下建议用JOIN连接;EXISTS条件是判断子查询存在不存在符合的记录,并且只有有一条记录符合条件就判定EXISTS成立。

关于Oracle中in和exists的区别
一般来说,这两个是用来做两张(或更多)表联合查询用的,in是把外表和内表作hash 连接,而exists 是对外表作loop 循环,假设有A、B两个表,使用时是这样的:1、select * from A where id in (select id from B)--使用in 2、select * from A where exists(select B.id from B where B...

相似回答