oracle如何通过两个表关联,修改其两表中某列中的数据?

A表包含B/C/D列 E表包含B/F/H/D列,现将H=1的记录在两表中的D均改为2(两表B列关联,D列值相同)

不管是update还是merge每次都是只能修改一站表,还没听说一次修改两张表的。
如果分别修改那就比较简单了(先确定B列是否唯一,如果不唯一,那么可能存在修改扩大的问题,所以可能还要修改语句),update a set a.d=2 where a.b=(select b from E where h=1)(这是a表的,b表的改法更容易)
如果一起修改,那么可能只能临时修改,也就是select的时候修改一下,这个一般没什么用。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-11-28
UPDATE (
select a.d as d1,e.d as d2 from a,e where a.b=e.b where e.h=1
)t
set d1=2 and d2=2;追问

括号后面的t是什么含义

追答

给子查询取了个别名

oracle如何通过两个表关联,修改其中一表中某列的数据?
或者 update a set a.e=(select b.h from b where b.g=a.g)where exists (select null from b where b.g=a.g)需要保证a,b表一对一对应关系,如不是不可以这么写 条件那里看需要写了,如果a表大,用in ,反之用exists

在oracle中怎么将两个表合在一起?
如果两个表具有相同的列和数据类型,并且你想将一个表的所有行插入到另一个表中,可以使用INSERT INTO SELECT语句。例如,假设有两个表table1和table2,你可以使用以下语法将table2中的所有行插入到table1中:sql INSERT INTO table1 SELECT * FROM table2;请确保table1中的列和table2中的列对应匹配...

oracle 怎么更新一列值为另一个表里面的值
假设A表有字段ID和NameA,B表有字段ID和NameB,两个表通过ID连接,把NameB更新到NameA,可以这么写:merge into A using(select NameB fromB) TMP on A.ID=TMP.ID when matched then update set A.NameA=TMP.NameB 你也可以写Function或者procedure去用IF-Else来做,单数没有merge来得方便。

oracle 如何对调两行记录的某个字段的值
commit; end; 方法3:可以在定义列的数据字典里面,直接把your_t_name表的a,b调换(改名)

oracle存储过程,我如何把两个表中的两列数据进行替换
这个一个语句就可以实现了,不用着存储过程。Update X set 列=(Select c from Y where b=a);要求Y表中不能有重复行。

求教oracle两个表联合查询的sql语句
1、上面的sql是按照成绩降序排列后取出每个姓名的第一条记录,如果想换成升序把【order by b.成绩 desc】改成【order by b.成绩】即可。2、如果想取第二条记录把【where id = 1;】改成【where id = 2;】即可。3、如果想去前n条把【where id = 1;】改成【where id <=n;】即可。--- ...

oracle存储过程,我如何把两个表中的两列数据进行替换
create or replace procedure pr_uodate is begin Update X set col=(Select c from Y where b=a);commit;end pr_update;

如何批量修改oracle数据库中某一个表中的某一列数据?
1、构建临时表进行主键关联更新 需求:T1表有千万级别的数据量,需要更新这个表的字段a,b满足2个条件的记录。做法:一般业务会将条件通过excel表格提供给开发,那么开发首先需要将这个excel表格的内容插入到临时表T2中,考虑到a,b都不是主键,那么需要将a,b转化成主键后再插入到T2表中,T2表中还可以...

oracle 数据库多表连接语法
当数据从多表中查询时,要使用连接 (join) 条件。一个表中的行按照存在于相应列中的值被连接到另一个表中的行。在写一个连接表的 SELECT 语句时,在列名前面用表名或者表别名可以使语义清楚,并且加快数据库访问。为了连接 n 个表在一起,你最少需要 n-1 个连接条件。例如,为了连接 4 个表...

sql语句如何修改Oracle两张引用表中的数据类型
这个没法做到同时 第一步,删除掉外键 第二步,用你的alter语句分别修改两张表的字段属性 第三步,再把外键创建起来 多表的话也得采用类似方法

相似回答