oracle中把两个表的两个字段中内容相同的数据查询出来之后,再用表2里面的相同的内容替换掉表1相同的内容?
4个回答
展开全部
我看了上面的回答,以及推荐的回答,好像都不是您要求的满意方式
介绍如下方式:需要创建一个临时中间表,然后再把替换的内容插回原表
举例:
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;//提交事件
如果正确,还望采纳,并给予评价!谢谢!
介绍如下方式:需要创建一个临时中间表,然后再把替换的内容插回原表
举例:
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;//提交事件
如果正确,还望采纳,并给予评价!谢谢!
展开全部
select * from a,b where a.name1=b.name2;
name1是a表里的字段。
name2是b表里的字段。
这个查出来就是相同的数据就能查询出来了。
name1是a表里的字段。
name2是b表里的字段。
这个查出来就是相同的数据就能查询出来了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update T1 set T1.aa = T2.a1 and .... where T1.id = T2.id
追问
这两行数据不替换,是其他行的数据进行替换?
追答
xinghaixt 讲的是一种想法,刚开始没太明白你的意思~
这就类似于AB数据互换么,是需要用一个中间表来存储数据的~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
都相同了还替换,这不是蛋疼吗。
追问
是这两行不替换 替换其它行的数据?抱歉,怎么实现?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询