Как обновить несколько столбцов в одной таблице в Oracle - PullRequest
0 голосов
/ 01 марта 2020

Я довольно новичок в Oracle. Мне нужно обновить два столбца в одной таблице на основе разных критериев из другой таблицы:

Таблица 1 :

C1 = Hello, C2 = Jane, C3 = Goodbye, C4 = John OR
C1 = Brown, C2 = Cat, C3 = Black, C4 = Dog

Таблица 2 :

T2.C1 = T1.C1 and T2.C2 = T1.C2 when T2.C1 = T1.C3 and T2.C2 = T1C4

Я знаю, как это сделать в нескольких операторах обновления. Возможно ли сделать это в одном? Если да, то как?

1 Ответ

1 голос
/ 01 марта 2020
UPDATE 
  (SELECT t1.c1 as c1_new, t1.c2 as C2_new, t2.c1 as c1_old, t2.c2 as c2_old
   FROM t1, t2
   WHERE t1.c3 = t2.c1 and t2.c2 = t1.c4) t
SET t.c1_old = t.c1_new, t.c2_old = t.c2_new
...