oracle数据库同一张表中一个字段值插入到另一个字段

表a中的字段分别是idstat_cyclex_valuey_value12013041022013050932013060542013072152013081862013... 表a中的字段分别是
id stat_cycle x_value y_value
1 201304 10
2 201305 09
3 201306 05
4 201307 21
5 201308 18
6 201309 99
通过stat_cycle字段把 201404的x_value值更新到201405y_value值中以此类推,
谢谢在线等
201404的x_value值更新到201405y_value
201405的x_value值更新到201406y_value
201406的x_value值更新到201407y_value
以此类推~因为我这边有个批量更新的数据,
这个能帮忙解答下吗?
展开
 我来答
198901245631
2015-11-07 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1730万
展开全部
可以通过insert into …… as select 语句来进行实现。
sql:insert into tablename(newname) as select oldname from tablename where 条件语句。
备注:以上语句中插入的字段顺序必须要和查询的语句的顺序保持一致,否则会报错,如果有条件语句的话,可以增加 where条件。
太平岁年丰9
2014-05-13 · TA获得超过1231个赞
知道小有建树答主
回答量:1017
采纳率:100%
帮助的人:1090万
展开全部
update a ua set y_value=
(select y_value from (select id,x_value,lag(x_value)over(order by id) y_value from a ) sa
where ua.id=sa.id);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海子Goahead
2014-05-13 · TA获得超过310个赞
知道小有建树答主
回答量:462
采纳率:0%
帮助的人:291万
展开全部
update a set y_value =(select x_value from a where stat_cycle='201404') where stat_cycle ='201405';
追问
201404的x_value值更新到201405y_value
201405的x_value值更新到201406y_value
201406的x_value值更新到201407y_value
以此类推~因为我这边有个批量更新的数据,
这个能帮忙解答下吗?
追答
批量更改的话,最好使用存储过程或者plsql循环语句。我给你写一个简单点的,你看着改改:
declare
i int ;
j int;
begin
i :='201404';
j :='201405';
for (i ='201404',i<=你要改的最大值,i+10)
update a set y_value =(select x_value from a where stat_cycle=i) where stat_cycle =j;
j=j+10;
end;
注意这个语句我没测试过,可能会有问题,大概思路是这样的,你试着修改测试一下。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式