DB2 关联更新

update GIS_TER_ADDRESS_MSG
set (POS_X,POS_Y)=(select LAT,LON from TEMP_ATM where GIS_TER_ADDRESS_MSG.ADDRESS=TEMP_ATM.ADDRESS fetch first 1 rows only)
where TER_TYPE='02'
and exists (select 1 from TEMP_ATM where GIS_TER_ADDRESS_MSG.ADDRESS=TEMP_ATM.ADDRESS);

  1、如果字段不是id值,数据不唯一,则可能会出现多条对应一条的情况,这种情况

可以使用    fetch first 1 rows only 来解决,它的含义是选取第一条数据。

       2、关联更新没有匹配到的数据会默认给null,为了处理这种情况,可以使用一个where条件解决

and exists (select 1 from TEMP_ATM where GIS_TER_ADDRESS_MSG.ADDRESS=TEMP_ATM.ADDRESS)

  

原文地址:https://www.cnblogs.com/tiandi/p/13597560.html