<> ' ' 和 <> '' 不起作用的情况

罗克

我编写了一个 SQL 来从 A 列不为空的 oracle 数据库中查询表垫。A 列是 varchar,其默认值为 ' '。我写了下面的sql:

select * from mat where matnr='test' and A <>'' and A <> ' '

但它返回一个空数据集。

然后我跑了:

select * from mat where matnr='test' and A <> ' '

这个查询有效。那么是什么原因呢?谢谢。

Bob Jarvis - 荣耀归于乌克兰

在 Oracle 中,''表示NULL. 任何与 NULL 的直接比较都返回 NULL 而不是 TRUE 或 FALSE,所以你不能说A <> ''- 你必须说A IS NOT NULL

另一种可能性是使用该NVL功能,替换NULL' ',这样您就可以说

select * from mat where matnr='test' and NVL(A, ' ') <> ' '

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章