oracle 同時更新(update)多個字段多個值


 

update CONFIG t set (t.config_value,t.last_update)=(select 'tom',sysdate from dual) where t.id=2;
-- commit;
-- select 'tom',sysdate from dual

 

oracle 同時更新(update)多個字段多個值

http://blog.csdn.net/bbqk9/article/details/5890892/

--創建表A,B:

create table A (a1 varchar2(33),a2 varchar2(33),a3 varchar2(33));

create table B (b1 varchar2(33),b2 varchar2(33),b3 varchar2(33));

 

--插入數據 

insert into A values('1','aa','100');

insert into A values('2','bb','100');

insert into A values('3','cc','');

insert into A values('4','dd','200');

 

insert into B values('1','XX','10000');

insert into B values('2','YY','10000');

insert into B values('4','ZZ','20000');

insert into B values('5','KK','');

 

commit;

 

--更新前的表A,B:

 

                  

 

 

 

--對表A的a2,a3進行更新(帶條件);

update  A

  set (A.a2,A.a3) =(select B.b2,b.b3

  from  B

  where B.b1= A.a1 and A.a3=100

  )

      where exists

 (select 'X' from B where B.b1=A.a1 and A.a3=100)  ;

 

commit;

 

--或者: 

update  A

  set (A.a2,A.a3 )=

  (select B.b2,b.b3

  from  B

  where B.b1= A.a1 and A.a3=100

  )

  where (A.a1) in (select  B.b1 from  B

  where B.b1 = A.a1

  and A.a3 =100   );

commit;

 

 

--更新后的表A:

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM