create table TB_a(COL_b varchar2(6));
insert into tb_a values('100002');
insert into tb_a values('100013');
insert into tb_a values('100014');select substr(col_b,0,3)||lpad(to_char(to_number(substr(col_b,4,3))*2),3,'0') from tb_a;

解决方案 »

  1.   


    select t.col_b,
           to_number(substr(to_char(t.col_b), 1, 3)) * 100 +
           to_number(substr(to_char(t.col_b), 4, 3)) * 2
      from tb_a t--当然 此sql建立在你固定6位基础上
      

  2.   

    不好意思写错了。1000写成100了。select t.col_b,
           to_number(substr(to_char(t.col_b), 1, 3)) * 1000 +
           to_number(substr(to_char(t.col_b), 4, 3)) * 2
      from tb_a t
      

  3.   

    就一句sql:
    update TB_a set col_b = col_b+to_number(substr(to_char(col_b),4,3)) ;
    扩展下,如果想改变为后三位的n倍:
    update TB_a set col_b = col_b+to_number(substr(to_char(col_b),4,3))*(n-1) ;
      

  4.   

    刚才看错了 LZ原谅,你说的是要执行查询语句啊,参照如下代码即可:
    select col_b+to_number(substr(to_char(col_b),4,3)) col_b from TB_a;