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
以此类推~因为我这边有个批量更新的数据,
这个能帮忙解答下吗? 展开
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
以此类推~因为我这边有个批量更新的数据,
这个能帮忙解答下吗? 展开
3个回答
展开全部
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);
(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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
注意这个语句我没测试过,可能会有问题,大概思路是这样的,你试着修改测试一下。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询