oracle中把两个表的两个字段中内容相同的数据查询出来之后,再用表2里面的相同的内容替换掉表1相同的内容?

2025-04-14 22:58:27
推荐回答(4个)
回答1:

我看了上面的回答,以及推荐的回答,好像都不是您要求的满意方式
介绍如下方式:需要创建一个临时中间表,然后再把替换的内容插回原表
举例:
create table temp_table as //这里创建临时表,第一次是新建,后面反复应用的话要么先drop临时表再新建,要么先删除再insert
select
T1.A1,
T2.A2 AS A2, //这里是把t2的信息去替换t1的内容,支持同时多条数据替换
T2.A3 AS A3, //这里是把t2的信息去替换t1的内容,支持同时多条数据替换
T1.A4
FROM T1
INNER JOIN T2
ON T1.A1 = T2.A2
commit;//提交事件
//这个时候临时表temp_table存储的是需要替换的数据;
//再删除T1表中要被替换的老内容,再插入临时表中被替换的新内容

delete FROM T1 WEHRE T1.A1 IN ( SELECT A1 FROM temp_table );
insert into T1
select * from temp_table;
commit;//提交事件

如果正确,还望采纳,并给予评价!谢谢!

回答2:

select * from a,b where a.name1=b.name2;
name1是a表里的字段。
name2是b表里的字段。
这个查出来就是相同的数据就能查询出来了。

回答3:

update T1 set T1.aa = T2.a1 and .... where T1.id = T2.id

回答4:

都相同了还替换,这不是蛋疼吗。