暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 存在条件

askTom 2017-03-20
318

问题描述

嗨,

在Docs中提到的关于Exist As返回True如果子查询返回至少一行。下面是链接

https://docs.oracle.com/cd/B19306_01/server.102/b14200/conditions012.htm

但是通过共同相关的子查询,它的工作就像IN一样,实际上它返回true或False。
在Live SQl中,Delete语句仅删除由sub-query.if编写的行,它仅返回TRUE或False,从其中获取值以删除确切的行?

专家解答

在所有情况下,它就像一个布尔。

在你的例子中1:

从T where exists (无关查询) 中删除;

从概念上讲,我们

a) 检查T的第1行
b) 运行存在检查
c) 不相关的查询返回1 (或更多) 行
d) 存在性检查 = 真
e) 因此删除该行。

查询是不相关的,所以每一行都将是true或false,所以要么所有行都将被删除,要么没有。


在你的例子中1:

从T where exists (关联查询) 中删除;

从概念上讲,我们

a) 检查T的第1行
b) 运行存在检查
c) 相关查询返回1 (或更多) 行
d) 存在性检查 = 真 or false on a PER ROW basis, because each existence query is potentially different to the those that preceded or followed it

但是在这两种情况下,逻辑是相同的

-进行存在检查,如果为true,则采取措施 (在这种情况下,请删除)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论