update aaa set depart=(case when substr(depart,-3,3)='xxx' then replace(depart,'xxx','') 
                            when substr(depart,-2,2)='yy' then replace(depart,'yy','') 
                            else depart end) where substr(depart,-3,3)='xxx' or substr(depart,-2,2)='yy';

解决方案 »

  1.   

    update tab1 set 
    depart = replace(replace(depart,'xxx',''),'yy','')
    where instr(depart,'xxx')>0 or instr(depart,'yy')>0
      

  2.   

    楼上网友的语句是把所有包含'xxx','yy'的都更新了,包括结尾是'xxx','yy'的记录.update aaa a set a.depart=
    decode(substr(a.depart,length(a.depart)-3+1,3),'xxx',
           replace(a.depart,'xxx',''),
           substr(a.depart,length(a.depart)-2+1,2),'yy',
           replace(a.depart,'yy',''),
           a.depart)
    where 
         substr(a.depart,length(a.depart)-3+1,3)='xxx'
         or 
         substr(a.depart,length(a.depart)-2+1,2)='yy'
      

  3.   

    update tbName 
    set depart = replace(replace(depart,'xxx',''),'yy','')
    where depart like '%xxx' or depart like '%yy';