oracle9i环境下,客户端是xp环境,现有一表A,有字段mm,nn,现表中有数据如下:
           
        mm     nn        1      飞机
        5       汽车
        12      轮船
        13      汽车
        15     自行车 
现在想把mm=5的nn值由"汽车"改成"火箭",把mm=12的nn值由"轮船"改成"摩托车",把mm=15的nn值由"自行车"改成"汽车",改完后表中数据应该是:        mm     nn        1      飞机
        5       火箭
        12      摩托车
        13      汽车
        15     汽车要求只用update  set 语句,一次执行完成,不知道具体的sql语句该怎么写??? 

解决方案 »

  1.   

    update a set nn=case mm when 5 then '火箭' 
                            when 12 then '摩托车'
                            else '汽车' end
     where mm in (5,12,15)
      

  2.   

    update a
    set nn = case when mm = 5 and nn = '汽车' then '火箭'
                  when mm=12  and nn = '轮船' then '摩托车'
                  when mm=15  and nn = '自行车' then '汽车'
                  else nn
             end
      

  3.   

    使用case when吧同志.还有一个类似是decode吧