oracle 查询语句  select  *  from table where num='1' 或者 select  *  from table where num=1 用这两种方式查询,有时候第一种能查出来,有时候第二种能查询,在就是都不能查询, num 是varchar2 类型 ,求解决

解决方案 »

  1.   

    num to_char()下
      

  2.   

    , num 是varchar2 类型 ,你就一定要写成 where num = '1' 这种形式,不要省掉 引号。查不出数据来,那肯定是数据不规范,
      

  3.   

    我认为两种应该都可以查询吧。。正常情况下,字符串类型和number型可以隐性转换的
      

  4.   

    没可能有时候查出,有时候查不出的。首先你要确定num的类型,如果是varchar2类型,最好写规范点,num='1',你查不出,可能是num字段里面没有=‘1’这样的数据而已吧
      

  5.   

    考虑下是否因为null值引起的,稳妥起见用下面的语句:
    select * from table where nvl(num, '0') = '1';