re wffffc(飞):你的方法不行啊
re BlueSuperMan(耀舞飞扬) :分开执行可以,我现在就是在分开执行,你不知道分开执行要多写多少代码。

解决方案 »

  1.   

    update  a set year=decode(key,'001','123','002','wang',year);
      

  2.   

    UPDATE a SET year = decode(key,'001','123',year),
                 name = decode(key,'002','wang',name)
    WHERE key IN ('001','002')
      

  3.   

    duanzilin(寻):你能解释一下代码吗?
      

  4.   

    假如我想:
    update Table_A set year='1982' where key='Mr.W'update Table_A set year='2006' where key='Mr.LW'用tian00weiwei(weiwei)的方法写成:update Table_A set year=decode(key,'Mr.W','1982','Mr.LW','2006',year);可以更新到数据库,那么decode是怎么用的呢?查了一下没有找到很详细的介绍。麻烦将一下好不?
      

  5.   

    decode(col1,m1,n1,m2,n2,...)
    col1 = m1,则返回n1;
    col1 = m2,则返回n2;
    ...或者
    decode(col1,m1,n1,n2)
    col1 = m1,则返回n1;否则返回n2;
      

  6.   

    那么,update Table_A set year=decode(key,'Mr.W','1982','Mr.LW','2006',year);
    后面这个2006后面为什么还要写个year?
      

  7.   

    那么,update Table_A set year=decode(key,'Mr.W','1982','Mr.LW','2006',year);
    后面这个2006后面为什么还要写个year?
    -----------------------------------------------这里用decode对每种匹配的情况有一个对应值,对于不匹配的值就不需要更新了,加上year就是在不匹配的情况下保留原值,如果去掉year,那么不匹配的key值对应的year就被更新成null了