oracle用NOT EXISTS替代NOT IN
2024-10-08 03:34:11
在子查询中,NOT IN子句将执行一个内部的排序和合并. 无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历). 为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS.
例如:
SELECT …
FROM EMP
WHERE DEPT_NO NOT IN (SELECT DEPT_NO
FROM DEPT
WHERE DEPT_CAT=’A’);
为了提高效率.改写为:
(方法一: 高效)
SELECT ….
FROM EMP A,DEPT B
WHERE A.DEPT_NO = B.DEPT(+)
AND B.DEPT_NO IS NULL
AND B.DEPT_CAT(+) = ‘A’
(方法二: 最高效)
SELECT ….
FROM EMP E
WHERE NOT EXISTS (SELECT ‘X’
FROM DEPT D
WHERE D.DEPT_NO = E.DEPT_NO
AND DEPT_CAT = ‘A’);
最新文章
- codeforces round #234B(DIV2) C Inna and Huge Candy Matrix
- Selenium Waits
- Codeforces Round #336 (Div. 2)B. Hamming Distance Sum 前缀和
- HFile解析 基于0.96
- MvvmCross[翻译] 使用Xamarin与MvvmCross完成一个跨平台App
- asp.net web.config的学习笔记
- 关于Get和Post的学习笔记(五)
- Android杂谈--ListView之BaseAdapter的使用
- 为什么ajax 必须同源,same origin policy
- [转]Wing IDE 6.0 安装及算号器注册机代码
- freemarker中的left_pad和right_pad(十五)
- 关系型数据库工作原理-高速缓存(翻译自Coding-Geek文章)
- 【alpha阶段】第八次Scrum Meeting
- 浅谈Kubernetes生产架构
- GAN试验记录.
- Js高级程序设计~读书笔记
- 【HDU - 5790 】Prefix(主席树+Trie树)
- js中的值类型和引用类型的区别
- ERP产品购进批量提交文件(三十六)
- log下一次坑爹的疏忽
热门文章
- day38 05-Spring的BeanFactory与ApplicationContext区别
- IO 性能 $ iostat -kx 2$ vmstat 2 10$ mpstat 2 10$ dstat --top-io --top-bio
- jmeter 通过csv data set config 设置参数化后,执行结果显示为<;EOF>;
- Hdu 1269 强连通判定
- 从0开始学习 GitHub 系列之「06.团队合作利器 Branch」
- 注解2 --- 自定义 Annotation --- 技术搬运工(尚硅谷)
- phpinfo空白
- objectarx之判断三点是否在一条直线上
- bzoj1221 软件开发
- 微信小程序组件——详解wx:if elif else的用法