如何通过类似的值从一个表到另一个表获取值?

时间:2010-06-15 12:30:26

标签: oracle

我有一个名为excel的表,其中包含3列,nameidfull_namename部分是我唯一拥有的部分,我需要填写idfull_name。包含数据的另一个表名为tim_pismena,有两列我需要的idpismeno_name(实际名称并不重要,但为了清楚起见,我正在编写它们)。在pseudooracle代码:)中,从第二个表中获取值的select将完成如下:

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 个答案:

答案 0 :(得分:2)

使用合并声明

  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);