基于VLOOKUP结果的SQL更新值

时间:2018-11-01 13:55:39

标签: sql oracle join sql-update

我正在使用DataGrip,并且具有一个包含2个表的Oracle SQL数据库。

我正在尝试使用来自另一个表的vlookup /外部联接更新 Table01 中的 column01 的值(当前所有值均为 NULL ) 。 Table01和Table02都有一个公共列。这个想法应该是这样的:

UPDATE Table01 SET RescorceName = (
  SELECT AntennaSection 
  FROM Table02 
  WHERE Table01.CellName = Table02.Cellname
)

我在下面添加了一个示例,希望结果显示如下:

enter image description here

任何建议将不胜感激!

1 个答案:

答案 0 :(得分:0)

您需要确保只更新某些记录

UPDATE Table01 
SET RescorceName = (
  SELECT AntennaSection 
  FROM Table02 
  WHERE Table01.CellName = Table02.Cellname
    -- note, this is a horrible way to solve the problem -- we should instead
    -- know why we are getting more than one row and change the query.
    AND ROWNUM = 1
)
WHERE Table01.CellName IN (
 SELECT Table02.Cellname
 FROM Table02
)