Как подставить значения из «промежуточной» таблицы для каждой строки, соответствующей критериям? - PullRequest
0 голосов
/ 07 декабря 2018

Допустим, у меня есть таблица (Table1), содержащая следующие данные.

VALUE_ID    VALUE      CODE    HOUR     TYPE
   1        null        DEF     1        REG
   2        null        DEF     2        REG
   3        null        DEF     3        REG

Допустим, у меня есть материализованное представление (MV1) (объединяет пару разных таблиц), которое выглядит следующим образом:

 VALUE_ID    VALUE      CODE    HOUR     TYPE     CALC_VALUE    DEFAULT_VALUE
    1        null       DEF      1        REG         8               2
    2        null       DEF      2        REG         12              1
    3        null       DEF      3        REG         25              0

Я хочу написать скрипт, который обновляет Table1 и устанавливает значение VALUE либо в значение, присутствующее в столбце CALC_VALUE , либо DEFAULT_VALUE столбец из MV1 .Ниже моя попытка:

 Update Table1
    SET value = (select calc_value from MV1)
  WHERE TYPE = 'REG' 
    AND HOUR = 2;
  COMMIT;

Любая помощь будет оценена.Заранее спасибо!

1 Ответ

0 голосов
/ 07 декабря 2018

Я думаю, вы просто хотите коррелированный подзапрос:

UPDATE Table1
    SET value = (select calc_value from MV1 where table1.value_id = mv1.value_id)
    WHERE TYPE = 'REG' AND HOUR = 2;
  COMMIT;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...