我用如下SQL语句:
Select * From TableName Where FieldName<>''
查不到任何记录,但如果把SQL修改为:
Select * From TableName Where Not FieldName Is Null
则会返回字段值不为空的记录,这是为什么啊?期待高手解决

解决方案 »

  1.   

    null不是任何类型,null不等于''
      

  2.   

    Oracle中长度为0的字符串会被自动转为NULL
    对于NULL不能使用等号或不等号,而只能使用IS NULL或IS NOT NULL来判断
      

  3.   

    '' 跟null 完全就是两个意思  
      

  4.   

    '' 和null (空)是不相等的where id=''where id is null 
      

  5.   

    在oracle中,空字符串''和null意义是相同的,都转化为null
    只不过查询时只能用is null或is not null查询
    =''和<>''就转化为= null和<> null,没有意义
      

  6.   

    Select * From TableName Where FieldName Is Not Null
      

  7.   

    null和任何值比较的结果都是false,包括null=null的值也是false
    ''其实就是null,只不过不能用来比较,只能和is null或者is not null比.
      

  8.   

    恩,0长度字符串被当做null处理,而null的特性就是不等于任何值包括null。所以你的sql查不出记录
      

  9.   

    数据库中,‘’存在数据库中就是null,而不是空字符串。所以查询时,你要查询的是库中字段为null的字段而不是空字符串。
      

  10.   

    用 is null null不等于‘’
      

  11.   

    这是oracle的不同,oracle中 ‘’就是被转化为 null了。