请教 sql update 更新的值是另外一个字段通过计算的值 并且整表更新 怎么写

2023-02-16 10:50:14 +08:00
 zhuzhuaini
假设表 A ,有三个字段,id,age,newage 内容是
table A:
id age newage
1 10 0
2 20 0
3 25 0

我需要写一个 sql 整表更新 newage 的数据为它原本的 age+10-5

需要更新成这样:
table A:
id age newage
1 10 15
2 20 25
3 25 30

当然运算不会这么简单,我会用一些函数啥的 反正就是通过他 age 字段的值 一系列运算 然后得出新值

用的是 oracle...
888 次点击
所在节点    Oracle
6 条回复
zhuzhuaini
2023-02-16 10:51:59 +08:00
这个太难描述了-.- 搜了下都没有找到合适的解决方案
有说可以先把查询结果放入临时表 再通过临时表更新 问题 oracle 的存储过程里的临时表好像没法创建还是咋的,用了几个网上的示例都报错
koloonps
2023-02-16 10:56:12 +08:00
触发器全表更新不就可以了?
zhuzhuaini
2023-02-16 10:58:16 +08:00
@koloonps 这个太专业了没研究过 有没有用存储过程或者一句 sql 就解决的....
sharping
2023-02-16 11:00:17 +08:00
你就用原值就行了,比如 update xx set age = age+10;
c6h6benzene
2023-02-16 11:11:17 +08:00
@zhuzhuaini Oracle 不确定,但你可以试试子查询
zhuzhuaini
2023-02-16 11:15:10 +08:00
@sharping 还真是 竟然如此简单 是我想的太复杂了,然后网上一查各种示例 越陷越深

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/916562

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX