oracle中常见的一个小错误就是字符串判断是否为空。
习惯了编程的人喜欢用<> !=,但这样都是错误的,应该使用is null 或者 is not null, 或者使用nvl函数
首先理解,在oracle中,默认将空字符视为null,而对null进行判断都为false
例如: ‘1’ != null 我们看上去这是对的,但是和null的比较都为fasle,所以结果是false
举个例子:
select ( case when 'sdfds' is not null then 1 else 2 end ) result from dual;
select ( case when 'sdfds' !=null then 1 else 2 end ) result from dual;
或者使用nvl函数,nvl(字符串,为空时的默认值)