请教路过的朋友们一个问题:
如表中一字段ClassID,为number类型
查询时用 Where ClassID like '%2%' 和 Where ClassID = 2 的结果是一样的,但不知道用like 和 = 有什么区别?

解决方案 »

  1.   

    Where to_char(ClassID) like '%2%' 
      

  2.   

    like相当于模糊查询吧,和等号当然有区别了
      

  3.   

    where f1 like '%2%'
    会将所有包含2的内容取出来,比如 21,22,12,1234 
      

  4.   

    create table AA
    (
      CLASSID NUMBER
    );
    insert into aa values(12);
    insert into aa values(34);
    insert into aa values(234);
    insert into aa values(2);
    SQL> select * from aa Where ClassID like '%2%';
     
       CLASSID
    ----------
            12
           234
             2
     
    SQL> select * from aa where classid=2;
     
       CLASSID
    ----------
             2
      

  5.   

    只有字符类型的字段才能使用 like。按楼上的方法可行。
      

  6.   


    Number 類型的 可以用like 進行模糊查詢.
      

  7.   

    有区别,
    你用Where ClassID like '%2%' 时,电脑自动将你的ClassID转换成字符型了,如果你的值刚好是2,结果没啥区别,但是如果是包含2的其他值,结果就是3楼说的了。
      

  8.   

    如果类型为number就不要用like ,因为这样做会让oracle先做类型转换,一来浪费计算资源,二来不能使用到索引