我有一条SELECT语句以这种方式提取记录。
SELECT /*+PARALLEL(16)*/ CONT_ID,
LOCATION_GROUP_ID,
CONT_METH_TP_CD,
END_DT
FROM (SELECT A.*,
DENSE_RANK() OVER (
partition BY CONT_ID, CONT_METH_TP_CD
ORDER BY LAST_UPDATE_DT DESC) AS RNK
FROM (SELECT LG.CONT_ID,
LG.LOCATION_GROUP_ID,
CG.CONT_METH_TP_CD,
LG.LAST_UPDATE_DT,
LG.END_DT
FROM HUB.LOCATIONGROUP LG,
HUB.CONTACTMETHODGROUP CG,
HUB.CONTACT C
WHERE LG.LOCATION_GROUP_ID = CG.LOCATION_GROUP_ID
AND LG.CONT_ID = C.CONT_ID
AND LG.END_DT IS NULL
AND C.INACTIVATED_DT IS NULL
) A
)
WHERE RNK > 1;
获取这些数据后,我必须返回将END_DT设置为SYSDATE,这将需要另一个查询。
获取结果后,是否可以直接在同一查询中直接设置END_DT,而不必进行其他查询?