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