首页 新闻 会员 周边 捐助

oracle中的 '' (空符串)是不是就等同于null ?

0
悬赏园豆:5 [已解决问题] 解决于 2013-06-10 19:47

在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

精致码农的主页 精致码农 | 菜鸟二级 | 园豆:231
提问于:2013-06-05 16:19
< >
分享
最佳答案
0

ORACLE 中NULL,"",'' 都是等价的。

收获园豆:3
Wolfe Yu | 菜鸟二级 |园豆:434 | 2013-06-10 18:35
其他回答(2)
0

自己随便弄几条数据测试一下不就知道了吗?

收获园豆:1
顾晓北 | 园豆:10898 (专家六级) | 2013-06-05 16:30

用我上面的测试语句应该可以说明 '' 和 null 是完全等同的,但就是想得到一些权威的肯定答案。

支持(0) 反对(0) 精致码农 | 园豆:231 (菜鸟二级) | 2013-06-05 19:03

@Liam Wang: 你这个when '' is n ull 这个''正常应该是一个字段,我想是不是没有这个字段,所以返回null?不知道,现在已经不用oracle了。

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2013-06-06 09:14
0
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
收获园豆:1
geass.. | 园豆:1821 (小虾三级) | 2013-06-05 17:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册