从另一个表中插入值到空列

  • 本文关键字:插入 另一个 sql oracle
  • 更新时间 :
  • 英文 :


我在Oracle的SQL开发人员工作。我想从表2附加日期到空列日期在表1只到存在的行/id。我试着通过下面的代码来做,但它不起作用。这似乎很容易,但我找不到解决办法。

Table 1                Table 2
ID   Date              ID   Date
33   (null)            33   2021-01-02
22   (null)            22   2019-01-02
100  (null)            100  1999-09-09
200  (null)            200  2005-06-07
44   (null)            44   2010-02-02
999  2009-08-06
insert into table1 (date)
select
t2.date
from table2 t2 where table1.id in (select t2.id from table2);

您需要一个现有行的更新语句。我假定您还没有真正将您的列命名为date

类似:

Update table1 t1
Set t1.date_col = (select t2.date_col from table2 t2 where t1.id = t2.id)

认为您可能正在寻找Oracle合并语句。如果行存在就更新,如果不存在就插入。

MERGE INTO Table1 a
USING Table2 b
ON (a.id = b.id)
WHEN MATCHED THEN
UPDATE set a.Date = b.Date
WHEN NOT MATCHED THEN
INSERT (id, date)
VALUES (b.id, b.Date);

最新更新