/* 这些测试都是在 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
oracle 会把 空内容 当成 null
这是 oracle 的规则,sql server 等 不是这样,使用前麻烦去看下说明书
谢谢!
还真不知道去哪找到权威的资料说明;
这是linux下的东东吗?我没有这个经验,但sql有类似的语法,园友可以验证我的说法是否正确。首先对于null,要用is null和is not null来判断。=null甚至可以说是一种错误的写法,虽然不报错,但得不到想要的结果。
Oracle中, 看来 ='' 和 =null 的写法都是错误的。