oracle万恶的的not in语句

oracle万恶的的not in语句,第1张

where not in如果数据量过大,可采用not exists的方式来写语句。

如有以下语句:

1

select distinct phone_number from zj_jituan_3g where phone_number not in (select phone_number from zj_34g_201512)

可改写为:

1

2

select distinct a.phone_number from zj_jituan_3g a where not exists

(select 1 from zj_34g_201512 b where a.phone_number=b.phone_number)

not in适用于结果集比较小的过滤,not in无法使用索引,例如id not in (1,2,3,4,5)在实际的执行计划当中被解释为 id<>1 or id<>2 or id<>3 or id<>4 or id<>5 关联的两个表比较大 not in的真集很小时 可以使用not in 效率较高, 但是如果not in所过滤掉的结果集很大时 就需要考虑使用not exists,例如

select * from a_tab a where not exists (select 'x' from b_tab b where b.id=a.id)

但是如果两个很大的表not in所过滤掉的结果集很小的情况下使用not exists则比not in慢,因为两个表要做关联,所以使用哪种方式 取决于你实际的情况。

作用就是:将字段值不在条件集里面的结果返回。

汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。

汇编语言是面向具体机型的,它离不开具体计算机的指令系统,因此,对于不同型号的计算机,有着不同的结构的汇编语言,而且,对于同一问题所编制的汇编语言程序在不同种类的计算机间是互不相通的。

汇编语言中由于使用了助记符号,用汇编语言编制的程序输入计算机,计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的"汇编程序"中进行加工和翻译,才能变成能够被计算机直接识别和处理的二进制代码程序。用汇编语言等非机器语言书写好的符号程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,当它被安置在内存的预定位置上,就能被计算机的CPU处理和执行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10047322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存