【问题标题】:Oracle SQL update swap numbersOracle SQL 更新交换号
【发布时间】:2023-03-09 10:11:01
【问题描述】:

我有一个 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

【问题讨论】:

  • “类型”的数据类型是什么?是外键吗?

标签: sql oracle sql-update oracle-sqldeveloper


【解决方案1】:
update table set Type = 11 - Type
where Type in (5,6)

【讨论】:

  • 您的解决方案非常棒!
【解决方案2】:

我终于做到了,谢谢你的帮助

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)));

【讨论】:

    【解决方案3】:

    这是更通用的方法。我真的很喜欢 Type = 11 - Type 这样的技巧,但遗憾的是,我们工作的世界里,如果不是一次性更新,我们的很多同事都不会理解这一点。

    update table
    set Type = case when Type = 5 then 6 when 6 then 5 end
    where Type in (5,6)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-24
      • 2018-08-12
      • 1970-01-01
      相关资源
      最近更新 更多