www.bzyk.net > DB2 upDAtE join

DB2 upDAtE join

merge into B using ( select a.a,a.c from A ) as d on b.e = d.a when matched then update set b.f = d.c;

UPDATE T_PM_USER USER SET USER.FNUMBER = (SELECT PER.FNUMBER FROM (SELECT PER.FID, PER.FNUMBER FROM T_ORG_ADMIN AD INNER JOIN T_HR_PERSONPOSITION PERPO ON AD.FID = PERPO.FPERSONDEP INNER JOIN T_BD_PERSON PER ON PERPO.FPERSONID ...

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 其它限制条件. 这样就只改自己想改的东西,你上面写的是改所有,肯定有没有匹配的记录,注意...

update table1 a set a.c = (select b.b from table2 b where a.a=b.a)另外,如果在a.a=b.a的情况下,如果b.b有多个值的话也会报错 这个时候,你可以考虑用b.b的最大值或最小值 update table1 a set a.c = (select max(b.b) from table2 b where...

update table_name set column_name = substr(column_name , 1, 5) || 'X'; 另:SQL0803: Duplicate key value specified. 据我估计,你的update中可能对同一字段更新两次/两个值。

原因是 UPDATE SET 一个结果集时要求该结果集必须只有一行值, 但 SELECT B.a FROM B WHERE B.b = A.b AND B.c = A.c 该结果集在对应到A表update时出现了多行值. 改为(如有多行值,则取多个值中的第一行): update a A set a = (SELECT B.a FROM B ...

TD_PDP_COD_C1,TD_PDP_COD_C2中是否有长度不够或者为Null或空。可以尝试用CASE WHEN 做个判断先。

和oracle不同, db2、sqlserver等,这些dbms中,函数是不能有insert、update、delete、以及DDL的操作的。当需要这些操作时,只能使用存储过程。

oracle 有,db2好像没有哈

没commit之前默认情况下是会加锁的...更改锁标示..也可以不锁...根据参数来控制... 在进行一般的select,insert等操作就会触发行或表锁..前提是你需要设定行或表锁..并设置触发机制 行锁升表锁??? 可能是我技术不够..我没听说过...一种笨拙的方法...

网站地图

All rights reserved Powered by www.bzyk.net

copyright ©right 2010-2021。
www.bzyk.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com