sootv5 2010-09-27 10:21
浏览 347
已采纳

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

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

  • 写回答

1条回答 默认 最新

  • dy243733608 2010-09-27 12:39
    关注

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题