select * from student where nvl(class,'')<>''.
这句话中的nvl(class,'')<>''总为false,class的值有得为null,有得时4,5,3……。
我就是写成4<>''这个条件都是false,甚是郁闷,请高手给俺点拨……

解决方案 »

  1.   

    空 与 null 是两个不同的值,你要检查下你class里存的是空值还是null值
      

  2.   

    有的是null,有的是空,有的有值,现在要统一把nulll改为'',但是出现了问题……
      

  3.   


    --要是统一把null改为空,这样就可以了:
    update table set 字段='' where 字段 is null;
      

  4.   

    4,5 is number类型和char类型你直接比较??/
      

  5.   

    oracle是不区分 '' 和null的  ''就是null    select * from all_tables
    where '' is null
    你加个空格了试试
    select * from student where nvl(class,' ')<>' '
      

  6.   

    因为 null=null 和null<>null 都是false 所以你的查询都是false 呵呵
      

  7.   

    多谢各位指点,问题解决了: where nvl(PaymentBn,'') is not null。