我有一个表Oracle SQL Developer,在某些代码中某处出现了错误,并且在创建记录时两个值被翻转。所以,我需要的是翻转所有5和6的东西。
ID Name Type
0 Joe 5
1 Chris 6
2 Jane 5
3 Tyler 6
需要
ID Name Type
0 Joe 6
1 Chris 5
2 Jane 6
3 Tyler 5
答案 0 :(得分:3)
update table set Type = 11 - Type
where Type in (5,6)
答案 1 :(得分:0)
我最终这样做了,谢谢你的帮助
update person
set type = (decode(type, 5, 6, 6, 5))
where id in
(select id
from (select *
from persons
natural join permit_persons
natural join permits
where permit_type = 1
and type in (5, 6)));
答案 2 :(得分:0)
这是更通用的方法。我真的喜欢像Type = 11 - Type
这样的技巧,但遗憾的是我们在一个我们很多同事都不会理解的世界里工作,如果它不仅仅是一次性的更新。
update table
set Type = case when Type = 5 then 6 when 6 then 5 end
where Type in (5,6)