问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ORACLE 语句求解。NOT EXISTS (…… = ANY(……)) 和 EXISTS (…… != ANY(……))

发布网友 发布时间:2022-04-14 00:59

我来回答

4个回答

懂视网 时间:2022-04-14 05:20

先看下面的例子:oracle中两个系统表.emp,dept.example:1:not exists(not in)not exists: 这条语句返回select * from scott.dep

先看下面的例子:Oracle中两个系统表.emp,dept.example:

1:not exists(not in)

not exists:

这条语句返回select * from scott.dept d where e.deptno=d.deptno and d.deptno=10条件满足的结果集.也就是说,

返回的结果集中不存在d.deptno=10结果集的记录,即emp表中没有dept表中d.deptno=10的记录.

SQL> select empno,ename,deptno from scott.emp e where not exists(select * from scott.dept d where e.deptno=d.deptno and d.deptno=10);

EMPNO ENAME DEPTNO
----- ---------- ------
7369 SMITH 20
7499 ALLEN 30
7521 WARD 30
7566 JONES 20
7654 MARTIN 30
7698 BLAKE 30
7788 SCOTT 20
7844 TURNER 30
7876 ADAMS 20
7900 JAMES 30
7902 FORD 20

11 rows selected

not in:

第一个where条件必须给定字段(deptno), 第二个sql语句中,必须明确给定要查询的字段是哪个(deptno).

SQL> select empno,ename,deptno from scott.emp e where deptno not in(select deptno from scott.dept d where e.deptno=d.deptno and d.deptno=10);

EMPNO ENAME DEPTNO
----- ---------- ------
7369 SMITH 20
7499 ALLEN 30
7521 WARD 30
7566 JONES 20
7654 MARTIN 30
7698 BLAKE 30
7788 SCOTT 20
7844 TURNER 30
7876 ADAMS 20
7900 JAMES 30
7902 FORD 20

11 rows selected

2: exists(in)

exists:

这条语句返回select * from scott.dept d where e.deptno=d.deptno and d.deptno=10条件满足的记录结果集.

也就是说返回的结果集中只存在有d.deptno=10的记录,即emp表中只存在dept表中d.deptno=10的记录.

SQL> select empno,ename,deptno from scott.emp e where exists(select * from scott.dept d where e.deptno=d.deptno and d.deptno=10);

EMPNO ENAME DEPTNO
----- ---------- ------
7782 CLARK 10
7839 KING 10
7934 MILLER 10

in:

第一个where条件必须给定字段(deptno), 第二个sql语句中,必须明确给定要查询的字段是哪个(deptno).

SQL> select empno,ename,deptno from scott.emp e where deptno in(select deptno from scott.dept d where e.deptno=d.deptno and d.deptno=10);

EMPNO ENAME DEPTNO
----- ---------- ------
7782 CLARK 10
7839 KING 10
7934 MILLER 10


oracle 中exists (in)和not exists(not in)是判断是否存在和不存在表中记录的关键子.

请注意:not in 逻辑上不完全等同于not exists,如果你误用了not in,小心你的程序存在致命的BUG:因此,请尽量不要使用not in(它会调用子查询),而尽量使用not exists(它会调用关联子查询)。

linux

热心网友 时间:2022-04-14 02:28

oracle 在执行不等于时不走索引,第一个会执行全表扫描,第二个用索引,所以第一个效率低

热心网友 时间:2022-04-14 03:46

oracle 在执行不等于时不走索引。 第一个效率很低的

热心网友 时间:2022-04-14 05:21

!= any是指not in (xxx)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
谢林港镇区位优势 谢林港镇基本介绍 轩辕剑外传穹之扉黑屏解决办法-搜狗输入法 请问轩辕剑外传穹之扉Setup在运行过程中游戏经常停止工作怎么办?_百度... 轩辕剑外传穹之扉黑屏打不开玩不了怎么办 各种问题解决办法_百度... 旧护照丢了,新护照上没有出入境记录怎样才能办理多次往返 我护照丢了怎么办理?只有出境没入境记录无法办理? 除数是两位数的除法有哪些? 网贷催收电话不接会怎样 一个淘宝钻号多少钱 2009年全国铁路司机资格理论考试 中国铁路总公司第126.127期动车组司机培训班考试成绩 2011春季铁路司机考试成绩查询 谁能说下什么时候出成绩 和查成绩的网站 元宵节将至,元宵和汤圆的区别,不要再傻傻分不清楚啦 家人特别沉迷直播间买品牌衣服怎么办(请看介绍)? 元旦手抄报标题 不能太俗 关于年味的标题有哪些? 婴儿车到底买哪款好 元旦富有诗意的标题 梦见我要和男朋友分手,然后男朋友当着我的面跳楼死了,血流一片,好吓人 适合新年的标题有哪些? 婴儿车什么牌子好,婴儿伞车哪个品牌的好 梦见男友分手后自杀是什么意思 梦到男友出轨与男友吵架分手我还收东西走人最后我用刀杀他然后我自杀 梦见男朋友要和我分手,我跳楼自杀了! 海南社会保险人脸识别视频认证管理系统取景框不显示 网路下载「索尼克与秘密的戒指」用Dolphin玩结果黑屏!!! 索尼克竞速故事模式我打开后突然黑屏出现(如下)为什么?如何解决? 索尼克与黑暗骑士的早期新闻 索尼克与黑暗骑士的故事内容 4G网络信号满格,就是用不了看不了电视,无法看视频,买手不要华为mate20。太卡了,真后悔买华为 酷狗音乐怎么不会显示在屏幕上啊? 怎样在手机屏幕上添加酷狗音乐播放? 安和桥乌衣巷什么意思? iPhone中添加如何第二个Mail帐户? ae导出视频文件太大怎么解决 关于苹果6怎么添加不了第二个邮箱 AE导出的视频过大,有什么解决办法? 电影《金刚》是根据哪个小说改变的? 金刚影片多长时间 金刚2005 电影 看片名《金刚王:死亡救赎》,你觉得是部什么样的电影? 金刚的电影有哪些 《长城》和《金刚》都是怪兽片,票房为何差别巨大? 电影金刚有多少部 金刚系列电影有几部 《金刚》电影有几部 特种作业包括哪些特性? 安全知识教育试题什么是特种作业 梦见自己收留了一只流浪狗,而且生了一窝小狗狗,然后说我家里没有*,我到处借钱买*。