通改改表中字段内容,保存为原内容的后5位,不够5位的就不作处理
通改改表中字段内容,保存为原内容的后5位,不够5位的就不作处理 
 例如数据:asdfghj   修改为   dfghj 
------解决方案--------------------SQL>  select substr( 'asdfdfafda ',-5,5)  from dual;   
 SUBSTR( 'ASDFDFAFDA ',-5,5) 
 ------------------------- 
 fafda
------解决方案--------------------通改改表中字段内容,保存为原内容的后5位,不够5位的就不作处理 
 用SUBSTR +case 解决   
 SELECT CASE WHEN LENGTH( 'fabcde ') > 5 THEN SUBSTR( 'fabcde ',-5,5) 
 ELSE  'fabcde ' END FROM dual 
 --abcde   
 SELECT CASE WHEN LENGTH( 'bcde ') > 5 THEN SUBSTR( 'bcde ',-5,5) 
 ELSE  'bcde ' END FROM dual 
 --bcde
------解决方案--------------------substr( '12345 ',-1)执行后结果为5,意思为取倒数第一位,你的substr(CPH,10,-5)不对。 
 select case when length(CPH)> 5 then substr(CPH,-5) 
 else CPH end from dual
------解决方案--------------------Update  CCIC_LOSTcaR a set  CPH=(select case when length(CPH)> 5 then substr(CPH,-5) 
 else CPH end from CCIC_LOSTcaR b where a.CPH=b.CPH)