sql oracle 更新 table 数据

sql oracle update table data

我有两个表:table1table2

table1:

HW_SN (varchar2)         ID (number)

123ERZ123                (empty)
124NIJD11
4125ERT22
....

-

table2:

ID (number)             Name (varchar)

85442                   123ERZ123
85471                   124NIJD11
12478                   4125ERT22
...                     ...

table1 还有一个名为 ID 的列是空的。

我需要检查 table1-HW_SN 是否与 table2-Name 相同 - 如果是,则应将 table2-ID 添加到 table1-ID

这是一个update操作。不幸的是,Oracle 不支持 joinupdate,因此您有两个选择。您可以使用 merge。或者,在这种情况下,子查询完成您想要的:

update table1
    set id = (select id from table2 t2 where t2.name = table1.hw_sn and rownum = 1)
    where exists (select 1 from table2 t2 where t2.name = table1.hw_sn);
UPDATE table1
SET ID = (SELECT table2.ID
                     FROM table2
                     WHERE table1.HW_SN = table2.Name)
WHERE EXISTS (SELECT table2.ID
                     FROM table2
                     WHERE table1.HW_SN = table2.Name);
UPDATE table1 t1
SET id = (SELECT id FROM table2 t2 WHERE t2.name = t1.hw_sn)

那是你的功课!