永发信息网

数据库怎么更新一张表内数据多条数据?

答案:4  悬赏:20  手机版
解决时间 2021-08-22 00:15

 

现在,我想把同一个人的2010-07月份的fuzhu_jiangjin
复制到这一个人2010-08月份的fuzhu_jiangjin

SQL语句该怎么写

employee_id都是一样的(从0001~0056)

最佳答案

不用吧??用一个游标cq不就搞定了??


把7月份的数据存在游标里,然后用一个for循环就搞点了.


for  employee_id in cq.employee_id loop


update 表set fuzhu_jiangjin= cq.fuzhu_jiangjin where employee_id =cq.employee_id ;


commit;


end loop;

全部回答

一个简单update根本不用游标,游标效率很低,那个满意答案的人根本就不懂。

一个update就搞定的,下面的方法在oracle数据库中跑是绝对没问题的。

要注意的是nvl,如果有一个employee_id 7月份没有而八月份有,你写的语句会把8月份的fuzhu_jiangjin 更新为null值,这样就有问题了。

update table a set fuzhu_jiangjin = NVL((select b.fuzhu_jiangjin from table b where b.employee_id = a.employee_id),a.fuzhu_jiangjin and fuzhu_riqi='2010-07')

where fuzhu_riqi='2010-08';

commit;

将8月份的jiangjin按照7月份的更新,如果没有找到对应记录,则维持原来的奖金额。

应为你没提供表名,所以用table代替。

 

update table a set fuzhu_jiangjin = NVL((select b.fuzhu_jiangjin from table b where b.employee_id = a.employee_id),a.fuzhu_jiangjin and fuzhu_riqi='2010-07')

where fuzhu_riqi='2010-08';

commit;

将8月份的jiangjin按照7月份的更新,如果没有找到对应记录,则维持原来的奖金额。

应为你没提供表名,所以用table代替了

你是要写SQL语句吗?

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
QQ华夏的这些怎么物品怎么收集??
进一步确认英语怎么说,"我又更进一步的了解了
求炫舞戒指自定义寶字和愛字 颜色随意好看就
非凡武艺,无限魅力!
夏尔喜欢谁,《黑执事》中夏尔喜欢谁?
8月15日哀悼日,还可以偷菜吗?
散光的产生原因,什么是散光,浅谈散光概念,
江西景德镇下一届中考 考哪几门?
樊城区襄樊襄阳味道(春园西路)在什么地方啊,
双鱼座的女朋友要怎么样哄她?
宁南县城乡管理局我想知道这个在什么地方
一年级山清对什么,一年级的春姑娘的短文,指的
按要求介绍点动漫来
扣扣小学同学盗了,是不是该宰了他
DNF抽奖活动什么时候结束
推荐资讯
猪有什么用?
春节给客户的祝福短信,在海外思念家乡及亲人
幼儿的安全教育有哪些,幼儿园安全教育活动有
铁马少年看完了漫画是多少看起
用寒意这词造句
高中理科题目
在哪里注册问问用户
有那些校园爱情电影?
DNF西北1里面的30级粉亡灵护腿能卖多少游戏币
发泄的单机游戏
床头扇是那种类型的风扇啊?台式扇又是那种类
为什么人和动物会变老?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?