oracle使用不等于(<>)条件过滤数据时会把NULL给过滤掉

oracle使用不等于(<>)条件过滤数据时会把NULL给过滤掉

解决方案1:select * from sample where a <> 'A' or a is null;

解决方案2:select * from sample where nvl(a,'default') <> 'A';

 

mysql在使用不等于(<>)条件过滤数据时也会把NULL给过滤掉

解决方案1:select * from sample where a <> 'A' or a is null;

解决方案2:select * from sample where ifnull(a,'default') <> 'A';

 

注意:

mysql中的NULL与空字符串('')是不相等的,是两个不同的值

NULL使用is null 或者 is not null判断

空字符串('')使用=''或者<>''进行判断

使用不等于时需要注意会过滤NULL值

count()统计时会忽略掉NULL值,不在统计之中,使用时需要注意

 

Oracle的NULL等价于空字符串('')

插入空字符串('')会被默认替换成NULL

posted @ 2020-01-15 13:54  五虎啸天  阅读(3534)  评论(0编辑  收藏  举报