日期:2014-05-17  浏览次数:20686 次

求一SQL!!!

假设有表ta 和 tb,建表和初始化语句如下:
create table ta (name varchar2(100),desci varchar2(100));
create table tb (name varchar2(100),desci varchar2(100));

insert into ta values('nameaa','i am aa');
insert into ta values('nameaa','i am aa2');

insert into tb values('namebb','i am bb');
insert into tb values('nameaa','i am bb,the new descri');

然后需求如下:
我想要更新ta中的desci字段,在原有内容的基础上追加当tb中的name和ta相同时的desci字段。
举例:tb中有一记录name为:nameaa,它的desci为:i am bb,the new descri,这时把ta中所有name为:nameaa的desci追加:
i am bb,the new descri。
最终想要的ta的结果是:
------------------------------------------
name | desci
------------------------------------------
nameaa | i am aa i am bb,the new descri
------------------------------------------
nameaa | i am aa2 i am bb,the new descri
-------------------------------------------

求大家指点!谢谢!


------解决方案--------------------
update ta a set a.desci = a.desci||(select b.desci from tb b where a.name = b.name)
where exists (select 1 from tb b where a.name =b.name)