相同列的条件更新

时间:2010-09-07 07:30:55

标签: sql oracle

找到下面的代码

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和5更新2和2用单个sql。

4 个答案:

答案 0 :(得分:6)

update
  aaa
set
  ENAME = case when ENAME = '2' then '5' else '2' end
where
  ENAME in ('2', '5')

答案 1 :(得分:4)

update aaa set ename = translate(ename, '25', '52')

update aaa set ename = decode(ename, '5', '2', '2', '5', ename)

答案 2 :(得分:3)

根据提供的信息和要求:

在t-sql中你可以这样做

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

使用oracle等效项更改case语句

答案 3 :(得分:0)

UPDATE  aaa
SET E = 7 - E
WHERE E IN (5,2)