sql – ‘in’子句如何在oracle中工作
发布时间:2021-03-03 02:31:22 所属栏目:MsSql教程 来源:网络整理
导读:select 'true' from dual where 1 not in (null,1); 当我们执行此操作时,什么都不会产生 我的问题是: 以上查询在逻辑上等效于 select 'true' from dual where 1 != null and 1 != 1; 这将不会像上述声明那样产生任何结果 请澄清? 解决方法 正确(但请注意
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(作为练习留下),也不会返回任何行. (编辑:南京站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读