今天在写一个简单的sql的时候,很简单,就一句话,如下:select orgid,orgname,orgscope from org o where o.parentid <> 1;这条语句的意思很简单,就是要查出父级机构不为1的,但是查出来的结果很奇怪,竟然把parentid为空的记录也给过滤掉了,不应该呀,想不通,谁给解释一下。

解决方案 »

  1.   

    o.parentid <> 1 ;
    你加上  or o.parentid is null;
    看是否有空记录?
      

  2.   

    null 不能用任何的 运算 操作符去比较 只能用 is 
      

  3.   

    <> 已经包含了 is null的意思
      

  4.   

    null使用任何关系运算符(>,<,=,<>等)与任何值比较,结果都为FALSE判断null和非null,用is null、is not null
      

  5.   


    o.parentid <> 1 这里已经过滤了为空的  为空只能是与is null 
    或者这样o.parentid <> 1 or o.parentid  is null(或者这样 nvl(o.parentid,0)=0)