Oracle Select перед обновлением - PullRequest
       2

Oracle Select перед обновлением

1 голос
/ 09 сентября 2011

В Oracle есть способ выбрать набор данных и использовать его для обновления, как в операторе слияния.

Я ищу что-то вроде

USING
(
SELECT a, b, c FROM t
)
UPDATE t1
SET t1.x = t.a,
t1.y = t.b;

1 Ответ

7 голосов
/ 09 сентября 2011

Звучит так, будто вы просто хотите

UPDATE t1
   SET (x, y) = (SELECT a, b
                   FROM t
                  WHERE t.some_column = t1.some_column);

Если вы хотите обновить строки только в T1, если в T * есть соответствующая строка * T 1005 *

UPDATE t1
   SET (x, y) = (SELECT a, b
                   FROM t
                  WHERE t.some_column = t1.some_column)
 WHERE EXISTS (
   SELECT 1
     FROM t
    WHERE t.some_column = t1.some_column );

Если вы выбрали SELECT from T возвращает одну строку, вы можете опустить предложение WHERE, которое объединяет две таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...