String queryString = " from TProject  where nvl(submit,'no') = 'no' ";nvl(submit,'no')的意思是 假如submit字段值为空 那么submit=no  那么nvl(submit,'no')='no'的意思是什么了  这个字段里只有yes 空 和 no三个值可选 用这句语句查询出的结果的submit的值都是空值或者no  ,sumbit值为yes   的记录显示不出来  ,这不是我的疑问 这是我说明这语句的查询出来的结果 我的疑问是
nvl(submit,'no')='no'的意思是什么了

解决方案 »

  1.   

    其实就相当于:
    String queryString = " from TProject where nvl(submit,'no') <> 'yes' 
      

  2.   


    String queryString = " from TProject where nvl(submit,'no') = 'no' ";
    你这句的意思本来就是查的空和no
      

  3.   

    如果submit是no,满足,显示no;如果submit是NULL,满足,显示NULL
      

  4.   

    nvl(submit,'no')='no'就是
    submit is null
      

  5.   

    from TProject where nvl(submit,'no') = 'no' 就是  
    select * from TProject  where submit is null;
      

  6.   

    丢了一种情况
    正解应该是:submit字段为‘no’时可以查询到,submit为null时,被nvl函数转化为‘no’然后能查询到。
      

  7.   

    测试数据:CREATE TABLE TProject
    (
        ID NUMBER(4),
        sub VARCHAR2(20)    
    );
    INSERT INTO TProject VALUES(1, 'yes');
    INSERT INTO TProject VALUES(2, 'no');
    INSERT INTO TProject VALUES(3, NULL);
    测试结果:
    所以,选择是除了sub为yes的所有记录,包括为null的记录。