首页 热点资讯 义务教育 高等教育 出国留学 考研考公

oracle 条件更新

发布网友 发布时间:2022-03-22 18:15

我来回答

3个回答

热心网友 时间:2022-03-22 19:44

oracle 条件更新
如果按这个思路进行更新,会报错
update T1 set num=(select num from t2) where id in(select id from T2);
ORA-01247:单行子查询返回多个行

热心网友 时间:2022-03-22 21:02

如果按这个思路进行更新,会报错
update T1 set num=(select num from t2) where id in(select id from T2);
ORA-01247:单行子查询返回多个行

不过可以采取迂回战术

1
create table t1_new
as
select t1.id,t2.num from t1,t2 where t1.id=t2.id
union
select * from t1 where id not in(select id from t2);
2
rename t1 to t1_old;
3
rename t1_new to t1;追问你的union
select * from t1 where id not in(select id from t2);这句有什么用?

追答如果t1表中的id号都包含在t2表中,那么union没用;
如果t1表中有部分id号,在t2表中没有,那么
create table t1_new
as
select t1.id,t2.num from t1,t2 where t1.id=t2.id
会丢失一部分数据,这部分数据就是存在于t1中的id,但是不存在t2中id对应的数据,加入union是为了t1数据的完整性

热心网友 时间:2022-03-22 22:37

insert into T1
select T2.id,T2.num from T1 ,T2
where T1.id=T2.id

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com