您的位置:首页 > 数据库 > Oracle

ORACLE中基于其他表更新当前表的update语法

2009-07-25 00:46 429 查看
其他表: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将会默认的把所有的值全部更新,因而会把该行其他值更新为空。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: