首页新闻找找看学习计划

= null 和 is null 用法的区别 ; 估计很多新手都没验证过吧!

0
[已解决问题] 解决于 2013-05-26 21:14
/* 这些测试都是在 Oracle 中进行了  */
/*
'=' 和 is 用法的区别! */ /* 求大神给解释个原理! */ select case when '' is null then '' else '不等 ' end from dual select case when null is null then '' else '不等 ' end from dual --都会输出“等于” : 为什么? 难到空字符串也当成null了么? select case when null = null then '' else '不等 ' end from dua select case when '' = '' then '' else '不等 ' end from duall --这两个都输出“不等” ; 为什么? 写 "=" 号错在哪里?

 

我只想 实现:字段名 <>''  and  字段名 is  not  null  的功能!!!!!!

 

以后这样写就不会出问题了,是不是呢????

if strsql  is null then  

end if;

---------------------------

以前看到的方法:  这么写是不是有问题呢????

if nvl(strsql, '') <> '' then
end if

imefong的主页 imefong | 菜鸟二级 | 园豆:208
提问于:2013-05-25 10:36
< >
分享
最佳答案
0

oracle 会把 空内容 当成 null

这是 oracle 的规则,sql server 等 不是这样,使用前麻烦去看下说明书

奖励园豆:5
geass.. | 小虾三级 |园豆:1751 | 2013-05-26 19:26

谢谢!

还真不知道去哪找到权威的资料说明;

imefong | 园豆:208 (菜鸟二级) | 2013-05-26 21:08
其他回答(1)
0

这是linux下的东东吗?我没有这个经验,但sql有类似的语法,园友可以验证我的说法是否正确。首先对于null,要用is null和is  not  null来判断。=null甚至可以说是一种错误的写法,虽然不报错,但得不到想要的结果。

浅井光一 | 园豆:202 (菜鸟二级) | 2013-05-25 19:56

Oracle中,  看来 ='' 和 =null 的写法都是错误的。

支持(0) 反对(0) imefong | 园豆:208 (菜鸟二级) | 2013-05-26 00:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册