oracle中的 <> '' 的玄机?

sweetBug 2009-07-16 09:55:13

select * from (
select '1' as a from dual
)b where b.a <> '2'


求教各位达人,我将where b.a <> '2'的条件改成b.a <> '3', b.a <> '4' 都可以查出记录.即使改成b.a <> ' '也可以(一个空格)然而把条件改成b.a <> ''(长度为零的字符串)时就查不出任何记录了,这是为什么呢?
...全文
36 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Richard345265669 2009-07-16
  • 打赏
  • 举报
回复
呵呵,高手真多
sweetBug 2009-07-16
  • 打赏
  • 举报
回复
哦,是了,我换成is null 就成了, 谢谢大家!
asdf_ndsc 2009-07-16
  • 打赏
  • 举报
回复
'' oracle 当成 null 处理。

null 在 sql里是不能用来 比较的。

b.a <> ' ' 要换成 b.a is not null
lihan6415151528 2009-07-16
  • 打赏
  • 举报
回复
或许那就默认为不等于任何记录了
fuyou001 2009-07-16
  • 打赏
  • 举报
回复
长度为0就是null 了 null要用 is null

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧