условное обновление в том же столбце - PullRequest
3 голосов
/ 07 сентября 2010

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.  

Мне нужно обновить 2 с 5 и 5 с 2 с одним sql.

Ответы [ 4 ]

6 голосов
/ 07 сентября 2010
update
  aaa
set
  ENAME = case when ENAME = '2' then '5' else '2' end
where
  ENAME in ('2', '5')
4 голосов
/ 07 сентября 2010
update aaa set ename = translate(ename, '25', '52')

или

update aaa set ename = decode(ename, '5', '2', '2', '5', ename)
3 голосов
/ 07 сентября 2010

Согласно предоставленной информации и требованию:

В t-sql вы можете сделать это как

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

Изменить регистр с оракулом

0 голосов
/ 07 сентября 2010
UPDATE  aaa
SET E = 7 - E
WHERE E IN (5,2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...