场景:以前oracle10g的时候习惯使用case when nvl(字段,‘’)=‘’ then …取值1 else 取值2 end ,在oralce11g也这么写的时候,你会发现,所有取值都会取值2,不会取到取值1,为什么呢?
这是因为oracle中字段时空字符串等同与null,也就是nvl(字段,‘’)也是null,不会得到‘’,所以这个条件在oracle11g上永远是不成立的。
但是要特别注意的是字段时空字符串与null在where条件时不相同,不信可以测试一下如下代码:
select
场景:以前oracle10g的时候习惯使用case when nvl(字段,‘’)=‘’ then …取值1 else 取值2 end ,在oralce11g也这么写的时候,你会发现,所有取值都会取值2,不会取到取值1,为什么呢?
这是因为oracle中字段时空字符串等同与null,也就是nvl(字段,‘’)也是null,不会得到‘’,所以这个条件在oracle11g上永远是不成立的。
但是要特别注意的是字段时空字符串与null在where条件时不相同,不信可以测试一下如下代码:
select