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

参考技术A update hr_employee set dept_id=B.id
from hr_employee A,sys_dept B
where A.dept_id=B.dept_code本回答被提问者采纳

以上是关于db2如何实现用一张表的某个字段更新另一张表的相应字段。的主要内容,如果未能解决你的问题,请参考以下文章

sql如何查询出一张表的的某个字段数据更换成另一张表的字段数据

SQL Server更新表(用一张表的数据更新另一张表的数据)

DB2用一张表更新其他表的数据

Mongo基于一张表的数据更新另一张表

orale update一张表的字段为另一张表的字段

在SQL中统计一个字段 然后再更新到另一张表的一个字段