【发布时间】:2021-08-31 18:32:26
【问题描述】:
我有一个合并语句,当命运表在这些列中有空值时,我需要更新几列。 如果 x 列在命运中为空,则仅更新该列。如果命运中只有 2 列为空,则仅更新这 2 列。 如何验证每列是否更新,检查命运是否为空?
MERGE INTO all_weather_mv p
USING (SELECT
a.ACTUAL_DRY_BULB_TEMP_F
,a.ACTUAL_DEW_POINT_F
,a.ACTUAL_WIND_SPEED_MPH
,a.ACTUAL_RELATIVE_HUMIDITY_PCT
,a.ACTUAL_STATION_PRESSURE_IN
,a.ACTUAL_HOURLY_PRECIP_IN
,a.OBJECTID
,a.DATETIME_UTC
FROM gtt_all_weather_mv a
,wx_stations w
WHERE w.OBJECTID = a.OBJECTID
AND w.WX_PREFERENCE = 1) d
ON (p.OBJECTID = d.OBJECTID
AND p.DATETIME_UTC = d.DATETIME_UTC
)
WHEN MATCHED THEN
UPDATE SET p.ACTUAL_DRY_BULB_TEMP_F=d.ACTUAL_DRY_BULB_TEMP_F,
p.ACTUAL_DEW_POINT_F=d.ACTUAL_DEW_POINT_F,
p.ACTUAL_WIND_SPEED_MPH=d.ACTUAL_WIND_SPEED_MPH,
p.ACTUAL_RELATIVE_HUMIDITY_PCT=d.ACTUAL_RELATIVE_HUMIDITY_PCT,
p.ACTUAL_STATION_PRESSURE_IN=d.ACTUAL_STATION_PRESSURE_IN,
p.ACTUAL_HOURLY_PRECIP_IN=d.ACTUAL_HOURLY_PRECIP_IN
WHEN NOT MATCHED
THEN
INSERT (
OBJECTID,
DATETIME_UTC,
ACTUAL_DRY_BULB_TEMP_F,
ACTUAL_DEW_POINT_F,
ACTUAL_WIND_SPEED_MPH,
ACTUAL_RELATIVE_HUMIDITY_PCT,
ACTUAL_STATION_PRESSURE_IN,
ACTUAL_HOURLY_PRECIP_IN
)
VALUES ( d.OBJECTID,
d.DATETIME_UTC,
d.ACTUAL_DRY_BULB_TEMP_F,
d.ACTUAL_DEW_POINT_F,
d.ACTUAL_WIND_SPEED_MPH,
d.ACTUAL_RELATIVE_HUMIDITY_PCT,
d.ACTUAL_STATION_PRESSURE_IN,
d.ACTUAL_HOURLY_PRECIP_IN
)
问候
【问题讨论】: