有一表num_tab;表中有如下两列: 
id(primarykey) char[],        number char[]; 
101                            02502587651111
102                            02502587652222
103                            02502587653333
~~~                            ~~~~~~~~~~~~~~现由于number中每列都是如下结构'0250258765****',除了前面的部分,后面*表示的每个记录都不同。 
意愿是把此列改为'0258765****',即把前面的025025变成025; 据说要设置变量,个人现在是傻得一条一条去update,非常傻
~~请教如何实现此操作。3x 
分不够明天再加100

解决方案 »

  1.   

    UPDATE yourTable SET "NUMBER"=substr("NUMBER",1,3)||substr("NUMBER",7);
      

  2.   

    除了上面方法,也可以这样写:
    OPER@TL>select * from test;ID                   NUMBERS
    -------------------- ------------------------------------------------------------
    101                  02502587651111
    102                  02502587652222
    103                  02502587653333OPER@TL>update test
      2  set numbers='025'||substr(numbers,7);已更新3行。OPER@TL>select * from test;ID                   NUMBERS
    -------------------- ------------------------------------------------------------
    101                  02587651111
    102                  02587652222
    103                  02587653333OPER@TL>
      

  3.   


    create table num_tab
    (
           id char(3)
           ,snumber char(20)
    )insert into num_tab values('101','02502587651111');
    insert into num_tab values('102','02502587652222');
    insert into num_tab values('103','02502587653333');
    commit;select id,snumber,case when substr(snumber,1,3)=substr(snumber,4,3) then substr(snumber,4,length(snumber)-3) end
    from num_tab--result:
    101 02502587651111       02587651111      
    102 02502587652222       02587652222      
    103 02502587653333       02587653333      --updating 
    update num_tab set snumber=case when substr(snumber,1,3)=substr(snumber,4,3) then substr(snumber,4,length(snumber)-3) else snumber end
      

  4.   

    如果定死的是3个字符:
    UPDATE TABLE_NAME
       SET NUMBERS = SUBSTR(NUMBERS,1,3)||SUBSTR(NUMBERS,7);如果是4个字符:
    UPDATE TABLE_NAME
       SET NUMBERS = SUBSTR(NUMBERS,1,4)||SUBSTR(NUMBERS,9);其他的情况自己根据这些SQL改一下就行。
      

  5.   

    update num_tab
    set "number"=substr("number",1,3)||substr("number",7)