Как я могу получить значения из одной таблицы в другую через аналогичные значения? - PullRequest
0 голосов
/ 15 июня 2010

У меня есть таблица с именем excel, которая имеет 3 столбца, name, id и full_name. Часть name единственная, что у меня есть, и мне нужно заполнить id и full_name. Другая таблица, которая содержит данные, называется tim_pismena и имеет 2 столбца, которые мне нужны, id и pismeno_name (фактические имена не важны, но я пишу их только для ясности). В псевдораздельном коде :) выборка, которая возвращает мне значения из второй таблицы, будет сделана примерно так:

SELECT tp.id, tp.pismeno_name
FROM tim_pismena tp
WHERE  upper(tp.pismeno_name) LIKE IN upper('%(SELECT name FROM excel)%')

и при использовании со вставкой конечный результат должен выглядеть примерно так:

name        id    full_name
Happy Joe   55    Very fun place Happy Joe, isn't it?

1 Ответ

2 голосов
/ 15 июня 2010

Использовать оператор слияния

  1  MERGE
  2     INTO  excel  tgt
  3     USING tim_pismenae src
  4     ON  ( upper(src.naziv_pismena) LIKE '%'||upper(tgt.ime)||'%')
  5  WHEN MATCHED
  6  THEN
  7     UPDATE
  8     SET   tgt.id = src.id
  9     ,     tgt.full_name = src.naziv_pismena
 10  WHEN NOT MATCHED
 11  THEN
 12     INSERT ( tgt.name
 13            , tgt.id
 14            , tgt.full_name )
 15     VALUES ( src.naziv_pismena
 16            , src.id
 17            , src.naziv_pismena )
 18     WHERE (1 <> 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...