在Sql Server 中''和null意义是完全不一样的,但在Oracle中如果执行下面的语句:
select
case when '' is null then 'is null' else 'is not null' end as T
from dual
将会得得到“ is null ”结果,这是不是说明oracle中的 '' 就等同于null ? 如果有所不同,能否举列说明 ?
在Sql server 中我们会经常用到这样一条语句:where 字段名 <> '' and 字段名 is not null
那么在Oracle中是不是只需这样写就可以:where 字段名 is not null
ORACLE 中NULL,"",'' 都是等价的。
自己随便弄几条数据测试一下不就知道了吗?
用我上面的测试语句应该可以说明 '' 和 null 是完全等同的,但就是想得到一些权威的肯定答案。
@Liam Wang: 你这个when '' is n ull 这个''正常应该是一个字段,我想是不是没有这个字段,所以返回null?不知道,现在已经不用oracle了。
SQL> select 1 from dual where null=null; 没有查到记录 SQL> select 1 from dual where null=''; 没有查到记录 SQL> select 1 from dual where ''=''; 没有查到记录 SQL> select 1 from dual where null is null; 1