之前对oracle的exits关键字的作用存在误区,先写此文记录一下:
见sql:
delete from a where exists (select null from b where b.id1=a.id1 and b.id2=a.id2)
这里是满足 a.id1=b.id1 and a.id2=b.id2的记录均会被删除。
之前理解为只用存在满足a.id1=b.id1 and a.id2=b.id2条件的记录,那么a表中所有记录均会被删除。
这样理解是基于对oracle 内部查找机制的不熟悉,只看到的语句的前部分和字面意思导致。
所以深入理解oracle执行的机制,很重要。
本文澄清了Oracle SQL中EXISTS关键字的常见误解,并通过具体示例解释了其正确使用方法。指出EXISTS并非简单检查匹配记录的存在与否,而是精确地指定了哪些记录将被操作。
804

被折叠的 条评论
为什么被折叠?



