您好,以下为思路与语法:
1 > update A a set acolumn = 更新值 where aa in (select a from b);
2> update A a set acolumn = 更新值 where exists (SELECT 1 FROM B b WHERE 1=1 aid = bid) <推荐。性能高于思路①>
通过Update语句将A表的某列值修改为B表中的指定列的值时,所用的sql语句在Oracle和SQL Server中是不一样的,
代码如下:
Oracle中的语句:
UPDATE A
SET ACOL1=(SELECT BCOL1 from B where AKEY=BKEY [and 其它限制(可选)] )
where 其它条件
SQL Server中更新语句:
update A
SET ACOL1=BCOL1
FROM A,B where AKEY=BKEY where 其它条件限制
若关联条件为多个,where后面用and 连接指定条件即可
1、若是执行完sql后没有commit,执行结果不会保存,所以update语句无效;
2、若是执行了commit,update仍然没有生效,说明表空间可能存在问题,需要具体排查,当然最直接的是删除表空间,重新建立
你的语句太混乱了,按照你的意思你需要明确几点。
1使用b表数据更新a表,那么where条件是什么,也就是说,更新a表中哪些数据,用b表中的哪些数据更新,二者的关系是什么。从你的语句中我看不出b表和a表的关联。
2找到关联条件后,通过关联条件查出的b表数据是否唯一,如果不唯一,还是会出现“返回值多于一行”的错误。
按照你的表结构和数据,假设A表和B表中的name列唯一,以name作为关联,可以这样写来实现你的更新目的:
update A set cou2 = (select B_cou1 from B where BB_name = Aname) where name in (select B_name from B where BB_name = Aname)
这条语句必须满足name在a、b表中唯一的条件,才能使用。
update table(表名) set last_update_dtime=to_date('20011201','yyyymmdd') where org_code='12134327';
以上就是关于oracle数据库要updateA表的数据,条件是A表的a字段等于B表的a字段,请教此update语句如何写。全部的内容,包括:oracle数据库要updateA表的数据,条件是A表的a字段等于B表的a字段,请教此update语句如何写。、oracle怎么更新表中的某一个字段的值、oracle 数据库用update 语句更新无效。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)