第一种方法:
update tablea set column_name1=(select name2 from tableb where tableb.name3=tablea.name1)
只修改一个
update tablea set column_name1=(select name2 from tableb where tableb.name3='a') where tablea.name1='A'
第二种方法:
假设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
第三种方法:(建议使用这个)
-
现在要把B表 B_COSTS 的值update到A表 A_COSTS 字段
-
SQL语法:
update a set (a.a_costs) = (select b.b_costs from b where a.id = b.id and a.a_id = b.b_id) where exists
(select 1 from b where a.id = b.id and a.a_id = b.b_id)
第四种方法:(更新内嵌视图)
update (
select e.sal as emp_sal, e.comm as emp_comm, ns.sal as ns_sal, ns.sal/2 as ns_comm
from emp e,new_sal ns where e.deptno = ns.deptno
) set emp_sal = ns_sal,emp_comm = ns_comm;
第一种方法:update tablea set column_name1=(select name2 from tableb where tableb.name3=tablea.name1)只修改一个update tablea set column_name1=(select name2 from tableb where tableb.name3='a') where tablea.na...
在做项目的过程中,发现开发库中某张
表
的某
字段
有许多值是空的,而测试库中该
字段
的值则是有的。
那么,有什么办法能将测试库中该
字段
的值
更新
到开发库中呢?
SQL Server中这是比较容易解决的,而
Oracle
中不知道方法了。
SQL Server中类似问题的解决方法
后来只好用笨的方法:
首先,将数据复制到Excel;(假设称测试库的
表
为A–含有数据)
然后,在开发库中建立和
表
A同结构的
表
B;(这里为了导入数据的简单,我对
表
B的结构进行了改造,只有两个
字段
)
图
表
B的数据
再利用PL SQL的导入功能将这些数据导入到
表
B中(此时
表
B的数据
举例(一对一,tablea所有关联数据全部修改):update tablea set column_name1=(select name2 from tableb where tableb.name3=tablea.name1)
只修改
一个
update tablea set column_name1=(select name2 from tableb where tableb.name3='a
当然可以用merge into ,但是前提是
更新
表
t1和被
更新
表
t2是1对1的关系。如果有1对多的关系,会报错
ORA-38104: Columns referenced in the ON Clause cannot be updated:
可以用这种方法:
update (select .....) set column1 = column2;
update t1 ...
假设
表
a中有多个
字段
(province ,city)需要从b
表
获取(两张
表
的mobile一样),总结了几种写法。
一、update a set a.province=(select province from b where b.mobile=a.mobile);
update a set a.city=(select cityfrom b where b.mobil
我的业务需求说明:
感觉是
一个
较为常见的需求。我所属的项目中的某
表
A 因为业务需要增加了几个
字段
,这几个
字段
是B
表
的
字段
,A
表
和B
表
也存在关联关系,需要将A
表中
的这几个
字段
通过关联关系从B
表中
同步过来。
因为我sql较弱,所以最开始尝试解决时首先想到的是insert into select 或select into 等语法,事实上是我走了歪路,因为我需要的是通过关联关系对已有的两个
表
进行某...
---方法一,无法修改与非键值保存
表
对应的列
update (select t1.F_HRORG a1, t2.F_GZBM_ID b1
from hr_users_common t1 , IC_HRORG t2
where t1.F_RZBM =t2.F_ICS_DEPT_NO and t1.F_RZBM !=F_BY_T08 AND F_YGH not...
[code="sql"]--使用where exists,则当数据存在时才会
更新
update sysrole role set system_name = (select system_name from temp_sysrole temp where role.rolename=temp.rolename)
where exists
(select system_name from t...