---方法一,无法修改与非键值保存表对应的列
update (select t1.F_HRORG a1, t2.F_GZBM_ID b1
from hr_users_common t1 , IC_HRORG t2
where t1.F_RZBM =t2.F_ICS_DEPT_NO and t1.F_RZBM !=F_BY_T08 AND F_YGH not in ( SELECT DISTINCT F_YGBH FROM HR_YGDD)
)
set a1 = b1;
结论:
用A表去更新B表的数据,A表的关联条件必须为主键,Oracle这样做的目的是保证表A的满足关联条件的数据是唯一的,
这样在更新B表数据时才有意义(自己都不确定怎么影响别人,是吧,hehe),
当然,如果两表关联的字段都为主键,则无论谁更新谁都没有问题。
结论:用A表数据更新B表数据,则A与B的对应关系为:1:1 或 1:n。
---方法二, 2.只能单行子查询s
update CITY_PROJECT_SCALE_INFO c set
(c.value) = (
select d.value from CITY_PROJECT_SCALE_INFO @test d where d.project_id = '7d7fd580a06240b2a9137dc2bbe831e9'
and d.project_id = c.project_id and c.company_code = d.company_code
)
where exists (
select 1 from CITY_PROJECT_SCALE_INFO @test d where d.project_id = '7d7fd580a06240b2a9137dc2bbe831e9'
and d.project_id = c.project_id and c.company_code = d.company_code
)
---方法三
merge into hr_users_common t1
using IC_HRORG t2
on( t2.F_ICS_DEPT_NO=t1.F_RZBM )
when matched then
update SET t1.F_HRORG=t2.F_GZBM_ID;
UPDATE hr_users_common T SET T.F_HRORG =(SELECT F_GZBM_ID from IC_HRORG U WHERE U.F_ICS_DEPT_NO=T.F_RZBM)
WHERE T.F_RZBM !=F_BY_T08 AND F_YGH not in ( SELECT DISTINCT F_YGBH FROM HR_YGDD) ;
1. update (select .....) set column1 = column2;
update (select iy.company_name company_name1, cc.company_name_jc company_name2
from income_year_item iy , city_company cc
where iy.company_code = cc.code
)
set company_name1 = company_name2;
2.只能单行子查询s
update CITY_PROJECT_SCALE_INFO c set
(c.value) = (
select d.value from CITY_PROJECT_SCALE_INFO @test d where d.project_id = '7d7fd580a06240b2a9137dc2bbe831e9'
and d.project_id = c.project_id and c.company_code = d.company_code
)
where exists (
select 1 from CITY_PROJECT_SCALE_INFO @test d where d.project_id = '7d7fd580a06240b2a9137dc2bbe831e9'
and d.project_id = c.project_id and c.company_code = d.company_code
)
3.使用merg inot 语句
--更新生产基础字段
merge into city_cfg_data_column_common cf1 using
city_cfg_data_column_common2 cf2 on
(cf1.resourceid = cf2.resourceid)
when matched then
update set cf1.template_type = cf2.template_type,
cf1.chinese_name = cf2.chinese_name,
cf1.column_name = cf2.column_name,
cf1.column_type = cf2.column_type,
cf1.column_size = cf2.column_size
when not matched then
insert (cf1.resourceid,cf1.template_type,cf1.chinese_name,cf1.column_name,cf1.column_type,cf1.column_size
,cf1.is_can_edit,cf1.is_unique,cf1.is_can_cover,cf1.show_order)
values (cf2.resourceid,cf2.template_type,cf2.chinese_name,cf2.column_name,cf2.column_type,cf2.column_size
,cf2.is_can_edit,cf2.is_unique,cf2.is_can_cover,cf2.show_order)
转载:https://blog.csdn.net/e_wsq/article/details/52062562