`

Oracle批量更新

阅读更多
方法一:

UPDATE am_approve_list_log_sammy a
SET    (a.emp_id, a.approver_sequence, a.approver_id) = (SELECT b.emp_id,
                                                                b.approver_sequence,
                                                                b.approver_id
                                                         FROM   am_approve_list_sammy b
                                                         WHERE  b.emp_id =
                                                                a.emp_id
                                                         AND    b.approver_id =
                                                                a.approver_id)
WHERE  EXISTS (SELECT 1
        FROM   am_approve_list_sammy c
        WHERE  c.emp_id = a.emp_id
        AND    c.approver_id = a.approver_id)

方法二:

update test1 a set name=(select name from test2 b where a.no=b.no) where
exists(select name from test2 b where a.no=b.no);



方法三:
涉及到效率问题可以参考下列语句:
update (select a.name aname,b.name bname from test1 a,test2 b where
a.no=b.no) set aname=bname;

不过有个前提,是给test2表的NO设为主键.
alter table test2 add primary key(no); 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics