其他表:SourceTable
No | col1 | col2 |
|
|
|
当前表:TargetTable
No | col3 | col4 |
|
|
|
方法一:
insert into
TargetTable(NO,COL3,COL4)
select TargetTable.Nextval,COL1,COL2)
from SourceTable
//where --------------------------
方法二:
根据两个表中的NO对应关系,将其他表(SourceTable)中COL1更新至当前表(TargetTable)中的COL3,COL2更新到COL4
ORACLE中基于其他表更新当前表的update语法:
UPDATE TargetTable
SET (COL3, COL4)=(SELECT COL1, COL2 FROM SourceTable WHERE SourceTable.NO=TargetTable.NO)
WHERE EXISTS (SELECT 1 FROM SourceTable WHERE SourceTable.NO=TargetTable.NO)
此处必须写WHERE子句,如果不写WHERE子句,oracle将会默认的把所有的值全部更新,因而会把该行其他值更新为空。