一、从一个表插入到另一个表中
表的插入操作,有时需要考虑到自增的情况,用到了nextval函数,然后利用 insert into table1 (....) select... from table2 的语法。注意select与()中的值 一 一对应。
insert into plan_target_run (spec_run_id, dept_id, cost_id, manage_id, attribute1, attribute2, attribute3,note, flag,last_update_date, last_updated_by)
select plan_target_spec_run_s.nextval, t.dept_id, t.cost_id, t.manage_id, null,null, null,null, 0, sysdate, 1 from plan_target_library t where t.dept_id=168875 and t.type_id=3
上述语句是从plan_target_library表中插入相应的数据到plan_target_run中。
二、用一个表的数据更新另一表的数据
从后台导入数据时,常常用到Excel格式导入,在建立临时表后,怎么把两个表对应起来是一个逻辑思考的问题。
update plan_target_run t set t.target_value = (select s.tempruntarget from targetruntemp s where s.temprunid = t.run_id) where t.run_id in (select s.temprunid from targetruntemp s where s.temprunid = t.run_id)
上述中 select s.teamruntarget from targetruntemp s where s.temprunid = t.run_id t.run_id是对表plan_target_run遍历过程中的某一个确定值,因此这条语句是一条记录。与select s.temprunid from targetruntemp s where s.temprunid = t.run_id一样 t.run_id是确定的,两者操作的是统一记录,获取不同的属性。
多么复杂的关系,都记住常规语法,update table1 set table1.attribute=... where (条件)。