建立测试环境: create table atp (bookname varchar(10),name1 varchar(10),name2 varchar(8),id int,price float,date1 varchar(15),date2 varchar(15))insert atp select 'sybase','王二',NULL,10,100000.0,nULL,'1994-10' union all select '数据库系统','李四',NULL,20,10000.0,NULL,'1990-11' union all select 'C/C++','张三',NULL,8,200000.0,NULL,'2001-01' union all select 'oracle','王二',NULL,15,50000.0,NULL,'1996-01'create table atpp(bookname varchar(10),name1 varchar(10),name2 varchar(8),id int,price float,date1 varchar(15),date2 varchar(15))insert atpp select 'sybase',NULL,'张三',NULL,NULL,NULL,NULL 按要求合并数据:select atp.bookname,isnull(atp.name1,atpp.name2) name1,atpp.name2,atp.id, atp.price,atp.date1,atp.date2 into #A from atp left join atpp on atpp.bookname=atp.booknameselect * from #a
直接Update就可以了Update A Set Col3=B.Col3 from atp A,atpp B Where A.Col1=B.Col1OrUpdate A Set Col3=B.Col3 from atp A Inner Join atpp B On A.Col1=B.Col1列名自己替换一下
我的改写就是这样的。Update A Set au_second=B.au_second from atp A,atpp B Where A.title_name=B.title_nameOrUpdate A Set au_second=B.au_second from atp A Inner Join atpp B On A.title_name=B.title_name 飞扬是将两表的数据合并生成一个新表的。 你是要直接Update atp还是要生成一个新表呢??
sybase 王二 NULL 10 100000.0 NULL 1994-10
oracle 王二 NULL 15 50000.0 NULL 1996-01
数据库系统 李四 NULL 20 10000.0 NULL 1990-11
C/C++ 张三 NULL 8 200000.0 NULL 2001-01
sybase NULL 张三 NULL NULL NULL NULL
没有达到合并效果!继续努力吧!还是要谢谢你!
create table atp (bookname varchar(10),name1 varchar(10),name2 varchar(8),id int,price float,date1 varchar(15),date2 varchar(15))insert atp select 'sybase','王二',NULL,10,100000.0,nULL,'1994-10'
union all select '数据库系统','李四',NULL,20,10000.0,NULL,'1990-11'
union all select 'C/C++','张三',NULL,8,200000.0,NULL,'2001-01'
union all select 'oracle','王二',NULL,15,50000.0,NULL,'1996-01'create table atpp(bookname varchar(10),name1 varchar(10),name2 varchar(8),id int,price float,date1 varchar(15),date2 varchar(15))insert atpp select 'sybase',NULL,'张三',NULL,NULL,NULL,NULL 按要求合并数据:select atp.bookname,isnull(atp.name1,atpp.name2) name1,atpp.name2,atp.id,
atp.price,atp.date1,atp.date2 into #A from atp left join
atpp on atpp.bookname=atp.booknameselect * from #a
但是你写的太复杂,我看不懂!我把列名给你,麻烦你再写一次,并稍加解释!
atp(title_name,au_first,au_second,price,pub_oty,pub_name,pub_name)
atpp(title_name,au_first,au_second,price,pub_oty,pub_name,pub_name)
向你致敬!我想问一下大写的A和B是什么意思?
飞扬是将两表的数据合并生成一个新表的。
你是要直接Update atp还是要生成一个新表呢??