sql oracle 更新 table 数据
sql oracle update table data
我有两个表:table1
和 table2
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 不支持 join
和 update
,因此您有两个选择。您可以使用 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)
那是你的功课!
我有两个表:table1
和 table2
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 不支持 join
和 update
,因此您有两个选择。您可以使用 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)
那是你的功课!