oracle数据库要updateA表的数据,条件是A表的a字段等于B表的a字段,请教此update语句如何写。

oracle数据库要updateA表的数据,条件是A表的a字段等于B表的a字段,请教此update语句如何写。,第1张

您好,以下为思路与语法:

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 语句更新无效。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9467491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存