update tbl1 a
set (a.col1, a.col2) = (select b.col1, b.col2
from tbl2 b
where a.key = b.key)
where a.key in(select key from tbl2)
但是如果有重复就会报错。
由于要去除重复,加上限制条件:
个人亲测:
update MSTB_Order_Header_EXTEND_ATL a
set (a.ORDER_TIMESTAMP, a.ORDER_NUMBER) = (select b.SALE_DATE, b.ORDER_NUMBER
from mstb_order_header b
where a.ORDER_NUMBER = b.ORDER_NUMBER and b.SALE_DATE>to_date('20141010','yyyymmdd'));
参考网友:
update a
set a.编号=b.编号
from b
where a.id=b.id
参考地址: http://www.233.com/oracle/zhonghe/20100424/111026315.html