业务上有如下的需求,UTC_DATA, COUNTRY_UTC,SITE_UTC 分别是UTC数据表,COUNTRY UTC表和SITE UTC表, UTC_DATA .UTC的值等于 COUNTRY_UTC.UTC - SITE_UTC.UTC,我写的Update语句如下: Update UTC_DATA A SET UTC= ( select CU.UTC-SU.UTC from COUNTRY_UTC CU , SITE_UTC SU WHERE A.COUNTRY_id = CU.COU
如果 UTC 原来为 NULL,在你更新完以后,还是 NULL ,那就说明:
1、没有找到匹配的行;
2、CU.UTC 和 SU.UTC ,这两个值至少有一个 NULL
你不妨加一个条件,看看提示更新了几行数据;
Update UTC_DATA A SET UTC=
(
select CU.UTC-SU.UTC
from COUNTRY_UTC CU , SITE_UTC SU
WHERE A.COUNTRY_id = CU.COUNTRY_ID AND A.SITE_NAME=SU.name
)
where exists(
select *
from COUNTRY_UTC CU , SITE_UTC SU
WHERE A.COUNTRY_id = CU.COUNTRY_ID AND A.SITE_NAME=SU.name
)