2016年8月28日 星期日

Oracle - 從另一個資料表更新多個欄位資料

若需要取另一個資料表的資料,來更新多個欄位資料, 可以使用下列SQL指令:

MERGE INTO PERSONS_TMP PT
USING (
    SELECT P.PERSON,
           P.JOB_TITLE,
           P.FIRST_NAME,
           P.LAST_NAME,
           P.FACILITY_ID
    FROM PERSONS P) TMP
ON (PT.PERSON = TMP.PERSON)
WHEN MATCHED THEN
UPDATE SET
    PT.FACILITY_ID = TMP.FACILITY_ID,
    PT.JOB_TITLE = TMP.JOB_TITLE,
    PT.FIRST_NAME = TMP.FIRST_NAME,
    PT.LAST_NAME = TMP.LAST_NAME;


另一種寫法:

UPDATE PERSONS_TMP
   SET (FACILITY_ID, JOB_TITLE, FIRST_NAME, LAST_NAME) =
(SELECT FACILITY_ID, JOB_TITLE, FIRST_NAME, LAST_NAME
  FROM PERSONS
 WHERE PERSONS_TMP.PERSON = PERSONS.PERSON)

沒有留言:

張貼留言