加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql – ‘in’子句如何在oracle中工作

发布时间:2021-03-04 22:02:41 所属栏目:编程 来源:网络整理
导读:select 'true' from dual where 1 not in (null,1); 当我们执行此操纵时,什么都不会发生 我的题目是: 以上查询在逻辑上等效于 select 'true' from dual where 1 != null and 1 != 1; 这将不会像上述声明那样发生任何功效 请澄清? 办理要领 正确(但请留意,I

select 'true' from dual where 1 not in (null,1);

当我们执行此操纵时,什么都不会发生

我的题目是:

以上查询在逻辑上等效于

select 'true' from dual where 1 != null and 1 != 1;

这将不会像上述声明那样发生任何功效

请澄清?

办理要领

正确(但请留意,IN是一个运算符,而不是一个子句,它在SQL中的事变方法与此相同,不只合用于Oracle).
where 1 not in (null,1)

相等于:

where 1 != null and 1 != 1

这应该写成:

WHERE 1 NOT IN (NULL,1)

WHERE 1 <> NULL AND 1 <> 1

这与:

WHERE (1 <> NULL) AND (1 <> 1)

其评估功效为:

WHERE UNKNOWN AND FALSE

并进一步:

WHERE FALSE

因此,它正确地返回没有行.

请留意,假如你有WHERE 1 NOT IN(NULL,2),它将评估为WHERE UNKNOWN(作为操练留下),也不会返回任何行.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读