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

比如一个table中有A字段和B字段,两个字段的值可能相等、可能不等、可能都为空、可能其中一个为空
A B
valueB
以上例子是A为空字符,如果sql语句写成select * from table where A<>B 这样就是无记录返回
如果光看两条记录的话确实是不相等,请问oracle中如何写这条sql语句才能返回记录

select * from table where nvl(A,B||'0')<>B;
如果A为空就会返回B0了,这样就可以返回结果了.

如果B也可能为空的话可以这样:
select * from table where nvl(A,B||'0')<>nvl(B,A||'0');