相匹配一个字段中的字串,但要求这个字串前面一个字符不是数字要查 xxxx6cc.. yyy16cc...  zzz26cc...后面任意字符如何能检索到只包含6cc的那条记录,但不包含16cc 26cc 这样的检索 like %6cc% 这样的 16cc 26cc的也出来了假设:表名为testTable 字段名为 modelname

解决方案 »

  1.   


    select * from testTable where regexp_like(modelname,'[^0-9]+6cc');
      

  2.   


    --上面的有問題,用這個,上面的匹配不到開始為6cc的
    select * from testTable where regexp_like(modelname,'([^0-9]+|^)6cc');
      

  3.   


    --暈,這樣應就可以了,被我搞復雜了
    select * from testTable where regexp_like(modelname,'[^0-9]6cc');
      

  4.   

    ++ regexp_like   
    substr(modelname,'6cc') 这个也不行.
      

  5.   

    9i的,好像不支持 regexp_like 怎么办?提示无效的关系运算付
      

  6.   


    --是不支持,呵呵,這樣寫
    select * from testTable where modelname like '%6cc%'
    and (instr(modelname,'6cc')=1 or (substr(modelname,instr(modelname,'6cc')-1,1) not between '0' and '9'));