oracle字段为''或者NULL时做比较

比如一个table中有A字段和B字段,两个字段的值可能相等、可能不等、可能都为空、可能其中一个为空
A B
valueB
以上例子是A为空字符,如果sql语句写成select * from table where A<>B 这样就是无记录返回
如果光看两条记录的话确实是不相等,请问oracle中如何写这条sql语句才能返回记录
最终目的就是要查出这两个字段不相等的记录来,从理论上分析应该是能查出来的(因为A字段和B字段确实不相等),但是在oracle里面null是未知的是不能用<>、!=等这样的表达式的 ,

select * from table where A is null and B is not null and B='valueB'
这里是用这种方法选出来,还可以用nvl函数先将空值设为某个值(这个值需要根据具体情况定,以保证A和B不相等)后再进行比较,select * from table where nvl(A,1)<>B
其中oracle中null的具体介绍可看一下这个http://hi.baidu.com/k_c_m/blog/item/4ed42b03a10ea0e008fa93f6.html
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-27
select * from table t , table m where t.a<>m.b
第2个回答  2010-09-27
不知道 你说的神马意思 返回记录结果就是 没有

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网