代码之家  ›  专栏  ›  技术社区  ›  Pravin Satav

对同一列进行条件更新

  •  3
  • Pravin Satav  · 技术社区  · 15 年前

    Pl查找下面的代码

    SQL> desc aaa
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     ENAME                                              VARCHAR2(1)
    
    SQL> select * from aaa;
    
    E
    -
    2
    2
    2
    5
    5
    5
    5
    
    7 rows selected.  
    

    我需要用5更新2,用一个sql更新2。

    4 回复  |  直到 15 年前
        1
  •  4
  •   Kirill Leontev    15 年前
    update aaa set ename = translate(ename, '25', '52')
    

    update aaa set ename = decode(ename, '5', '2', '2', '5', ename)
    
        2
  •  6
  •   Constantin    15 年前
    update
      aaa
    set
      ENAME = case when ENAME = '2' then '5' else '2' end
    where
      ENAME in ('2', '5')
    
        3
  •  3
  •   Kashif    15 年前

    update aaa set Ename = case when Ename = '2' then '5' else '2' end
    

    与oracle等价的Change case语句

        4
  •  0
  •   Michael Pakhantsov    15 年前
    UPDATE  aaa
    SET E = 7 - E
    WHERE E IN (5,2)