请教一个sql的问题,字段作为查询条件的时候是否自动判断不能为null

qwerty123501029 2013-06-24 10:09:51
比如说我有个表:test1.里面有几个字段,有个字段比如说是aa。aa里面的值有的是null的。
数据假设是100条,其中aa为null的有50条,aa等于ss的有10条。
我select * from test1 where aa != 'ss'时。为什么结果是40条不是90条?

难道是aa作为查询条件的时候本身就被判断为不能为null了吗

不知道说清楚没有,办公环境上不了网,这是上网机,辛苦大家了。
...全文
679 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyangsoft 2015-01-28
  • 打赏
  • 举报
回复
同意楼上的各位大大 null 在oracle中,要用is null 和is not null 来判断
yuyeyi 2015-01-28
  • 打赏
  • 举报
回复
oracle里面null不能与任何值除了自己。 可以试试 select * from dual where null is null; select * from dual where null != null; select * from dual where null is not null; select * from dual where null = ''; select * from dual where null != ''; 看玩这个你就会明白了
小新蜡笔 2015-01-28
  • 打赏
  • 举报
回复
select * from where 字段 is not null;
绕天涯_2014 2015-01-27
  • 打赏
  • 举报
回复
NULL不能通过=和!=判断相等,要用is null 和 is not null
linwaterbin 2013-06-28
  • 打赏
  • 举报
回复
你的这句话"难道是aa作为查询条件的时候本身就被判断为不能为null了吗"如果要成立的话、应该理解为在这里null是Oracle 5 种约束中的一种吧
GCC-pig 2013-06-28
  • 打赏
  • 举报
回复
在Oracle中用于判断是否等于null,不是用=实现的,而是用is null或者用is not null 实现的。
没_没_没超疯 2013-06-27
  • 打赏
  • 举报
回复
null != 'ss'实质上既不返回真也不返回假吧
司马琦昂 2013-06-27
  • 打赏
  • 举报
回复
同意楼上两位
zyjj_99 2013-06-25
  • 打赏
  • 举报
回复
is null //// is not null 来判断
u010412956 2013-06-24
  • 打赏
  • 举报
回复
null的判断只能通过is null 和is not null 来。 其他像= 和!=之类的 都不会成立。
qwerty123501029 2013-06-24
  • 打赏
  • 举报
回复
补充说明 : 我用的是sybase数据库 好像在oracle里面发帖不太好

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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