db2如何实现用一张表的某个字段更新另一张表的相应字段。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了db2如何实现用一张表的某个字段更新另一张表的相应字段。相关的知识,希望对你有一定的参考价值。
update A a set a.dui_status=( select b.dui_status from B b where b.dui_date=a.dui_date and b.acct_no=a.acct_no )where a.dui_status= 条件 and 其它限制条件.
这样就只改自己想改的东西,你上面写的是改所有,肯定有没有匹配的记录,注意你不是改所有。 参考技术A db2 "update a set a.字段=(select 字段 from b where 你的条件) where 你的条件"追问
不行啊。update A a set a.dui_status=( select b.dui_status from B b, A a where b.dui_date=a.dui_date and b.acct_no=a.acct_no );报错:Error Code: -811
追答写错了
update A a set a.dui_status=( select b.dui_status from B b where b.dui_date=a.dui_date and b.acct_no=a.acct_no )
不需要在里面还声明一次表a
还是不行,亲。报同样的错误: [Error Code: -811, SQL State: 21000] DB2 SQL Error: SQLCODE=-811, SQLSTATE=21000, SQLERRMC=null, DRIVER=3.50.152
追答我知道为什么了,你这个子查询语句查询出来的结果不是唯一的,待修改的列匹配上了不止一个结果,所以导致报错。
追问对啊,就是这个错误。怎么搞呢,写个存储过程或function行吗?
追答那就只能用函数或存储过程实现了
追问函数该如何写啊?我写了个函数,但是执行结果是空的。求指教了啊
参考技术B 1.B中有数据 具体条件自己加 UPDATE B SET根据数据库的一张表去更新另一张表的值
有一张表hr_employee 字段
id, dept_id
1 111
2 222
3 333
4 222
5 333
另一张表sys_dept
id dept_code
1 111
2 222
3 333
想让 hr的表dept_id变成sys的id
id dept_id
1 1
2 2
3 3
4 2
5 3
from hr_employee A,sys_dept B
where A.dept_id=B.dept_code本回答被提问者采纳
以上是关于db2如何实现用一张表的某个字段更新另一张表的相应字段。的主要内容,如果未能解决你的问题,请参考以下文章
sql如何查询出一张表的的某个字段数据更换成另一张表的字段数据