Oracle中將一個表中某一欄位的資料更新到另一個表中某一欄位
阿新 • • 發佈:2019-02-02
首先想到的sql:
update 表2 set 表2.c=(select val from 表2 where 表1.a=表2.a);但這樣會出現在表1中有的行,如果在表2中沒有對應的行,值被更新為null.
更改sql:
UPDATE 表2
SET 表2.C =
(SELECT B
FROM 表1
WHERE 表1.A = 表2.A)
WHERE EXISTS
(SELECT 1
FROM 表1
WHERE 表1.A = 表2.A);
附:同一個表中欄位拼接sql:
例子:
SELECT CONCAT('工號:',FNumber) FROM T_Employee
更新:
update edu_resource_import e set e.resource_name = concat(e.resource_name, substr(e.upload_file_path, length(e.upload_file_path) - 6, 3)) where e.change_state = '0' and e.importer_account = 'chenjianing' and e.resource_name = '二輪專題突破-中考化學專題突破';