Как объединить две таблицы в PL / SQL без создания новой - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь объединить две таблицы в PL / SQL, но я не хочу создавать другую таблицу. Я хотел бы использовать «ALTER TABLE».

Я хочу изменить свою старую таблицу и добавить один столбец из другой таблицы. Я попытался использовать alter table и создать новый столбец из второй таблицы.

ALTER TABLE TAB1
ADD VAR1 VARCHAR(30);
UPDATE TAB1 A
SET A.VAR1 = B.VAR1
WHERE EXISTS (SELECT VAR1 FROM TAB2 B WHERE A.ID = B.ID)

Сообщение об ошибке находится в «B.VAR1».

1 Ответ

0 голосов
/ 11 октября 2019
update tab1 a set
  a.var1 = (select b.var1 
            from tab2 b
            where b.id = a.id
           )
where exists (select null
              from tab2 b
              where b.id = a.id
             );

Или:

merge into tab1 a
  using (select b.id, b.var1
         from tab2 b
        ) x
  on (x.id = a.id)
when matched then update set
  a.var1 = x.var1;
...