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

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

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

不知道说清楚没有,办公环境上不了网,这是上网机,辛苦大家了。

11 个解决方案

#1


补充说明 : 我用的是sybase数据库  好像在oracle里面发帖不太好

#2


null的判断只能通过is null 和is not null 来。

其他像= 和!=之类的 都不会成立。

#3


is null ////   is not null 来判断

#4


同意楼上两位

#5


null != 'ss'实质上既不返回真也不返回假吧

#6


你的这句话" 难道是aa作为查询条件的时候本身就被判断为不能为null了吗"如果要成立的话、应该理解为在这里null是Oracle 5 种约束中的一种吧

#7


在Oracle中用于判断是否等于null,不是用=实现的,而是用is  null或者用is not null 实现的。

#8


NULL不能通过=和!=判断相等,要用is null 和 is not null

#9


请教一个sql的问题,字段作为查询条件的时候是否自动判断不能为null
同意楼上的各位大大
null 在oracle中,要用is null 和is not null 来判断

#10


select * from where 字段 is not null;

#11


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 != '';
看玩这个你就会明白了

#1


补充说明 : 我用的是sybase数据库  好像在oracle里面发帖不太好

#2


null的判断只能通过is null 和is not null 来。

其他像= 和!=之类的 都不会成立。

#3


is null ////   is not null 来判断

#4


同意楼上两位

#5


null != 'ss'实质上既不返回真也不返回假吧

#6


你的这句话" 难道是aa作为查询条件的时候本身就被判断为不能为null了吗"如果要成立的话、应该理解为在这里null是Oracle 5 种约束中的一种吧

#7


在Oracle中用于判断是否等于null,不是用=实现的,而是用is  null或者用is not null 实现的。

#8


NULL不能通过=和!=判断相等,要用is null 和 is not null

#9


请教一个sql的问题,字段作为查询条件的时候是否自动判断不能为null
同意楼上的各位大大
null 在oracle中,要用is null 和is not null 来判断

#10


select * from where 字段 is not null;

#11


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 != '';
看玩这个你就会明白了