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)

  

 

posted @ 2020-09-01 17:53  JackGIS  阅读(1029)  评论(0编辑  收藏  举报