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)