发现一个挺不符合逻辑的问题,如果f1为空,f1应该也符合不等于'aaa'的条件,结果f1为空的话,该条记录还是被干掉了,请问是怎么回事呢?
11 个解决方案
#1
NULL的多数操作结果都是NULL,而不是TRUE或FALSE。所以那句不会返回是NULL的记录。
#2
where null 可以作为条件?
#3
表中的记录,通过where 后面的条件判断,通常返回三个结果:True、False、NULL,而最终要的,只是结果为True的记录,其他两个都过滤掉了。
#4
select * from t1 where f1!='aaa' or f1 is null;
#5
楼主 NULL不是任何东西,不能用于其他例如=、!=、>、<等比较,这些比较都会返回假。
NULL一般判断为is null和is not null。
NULL一般判断为is null和is not null。
#6
不是不符合逻辑,是你没理解null的概念
#7
空值不参与比较
#8
null 和空的问题。
#9
在数据库中空值与NULL是有区别的,在处理的时候要看清楚
#10
是在想要比较,就先用nvl函数把null转换为空字符串
#11
比较空值只能用IS NULL或IS NOT NULL。
标准SQL没学好啊,骚年。
标准SQL没学好啊,骚年。
#1
NULL的多数操作结果都是NULL,而不是TRUE或FALSE。所以那句不会返回是NULL的记录。
#2
NULL的多数操作结果都是NULL,而不是TRUE或FALSE。所以那句不会返回是NULL的记录。
where null 可以作为条件?
#3
NULL的多数操作结果都是NULL,而不是TRUE或FALSE。所以那句不会返回是NULL的记录。
where null 可以作为条件?
表中的记录,通过where 后面的条件判断,通常返回三个结果:True、False、NULL,而最终要的,只是结果为True的记录,其他两个都过滤掉了。
#4
select * from t1 where f1!='aaa' or f1 is null;
#5
楼主 NULL不是任何东西,不能用于其他例如=、!=、>、<等比较,这些比较都会返回假。
NULL一般判断为is null和is not null。
NULL一般判断为is null和is not null。
#6
不是不符合逻辑,是你没理解null的概念
#7
空值不参与比较
#8
null 和空的问题。
#9
在数据库中空值与NULL是有区别的,在处理的时候要看清楚
#10
是在想要比较,就先用nvl函数把null转换为空字符串
#11
比较空值只能用IS NULL或IS NOT NULL。
标准SQL没学好啊,骚年。
标准SQL没学好啊,骚年。