sql - 在 Oracle 中的 Select 查询中无法获取空查询结果
问题描述
我有以下查询,我正在尝试运行但未返回预期结果。Null in的ISIN
字段值EXPORT_BB
也被忽略,并且不显示NOT IN
子句中给出的条件的结果。export_blacklist 只有一个行值,它不是 Null,但我仍然不知道 null 值被忽略的原因。
Select * from EXPORT_BB where ISIN NOT IN
(
SELECT
ISIN
FROM
export_blacklist);
如果我只运行没有 NOT IN 子句的选择查询,那么我可以看到字段的值NULL
。 ISIN
只是为了测试,我尝试了以下查询,但也没有任何结果。是 Oracle 18c 中的错误还是缺少某些东西?
select 'null is not in set' from dual where null not in (select 1 from dual);
解决方案
or子句中的NULL
with =
、<>
、或 的任何比较都将返回,因此该行不包含在结果中(因为只有返回值所在的行才会包含在结果中)。
使用以下情况更改您的代码:<
>
IN
NOT IN
NULL
TRUE
ISIN
NULL
SELECT * FROM EXPORT_BB
WHERE ISIN NOT IN (SELECT ISIN FROM export_blacklist)
OR ISIN IS NULL
推荐阅读
- asp.net-core - 上证所事件源 Asp.net Core 3.1
- javascript - 使用 SMTP.js 时如何隐藏我的 gmail.smtp 密码?
- python - 使用python从网站下载视频
- computer-vision - 如何在 Blender 中从不同的摄像机角度渲染 3d 模型的不同贴图(漫反射、深度、镜面反射、阴影)?
- gitlab - 在 Gitlab 中未显示 Plantuml 图
- java - 如何将多个字符串变量放置在 3d 数组的一个坐标中?
- c++ - 如何在控制台应用程序中使用 C++ WinRT 注册事件?
- lightningchart - Arction“没有有效的许可证可用错误”
- tensorflow - 如何优化/准备用于推理/部署的 TensorFlow 2 对象检测模型?
- javascript - 即使在页面重新加载后如何在浏览器扩展中连续运行 JavaScript 代码