如果想insert
insert into atp select * from atpp如果只是想查询,select:
select *  from atp
union all
select * from atpp

解决方案 »

  1.   

    这样不行结果是:
    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
    没有达到合并效果!继续努力吧!还是要谢谢你!
      

  2.   

    楼主,多列些数据出来,这样规律不是太清楚,可能写的语句不会很符合你的要求。主要想看到atpp的数据情况。
      

  3.   

    atpp表的结构和atp表一样,主要是想把atpp表的第三列插入atp表的第三列,来代替atp表第三列的NULL。
      

  4.   

    建立测试环境:
    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
      

  5.   

    直接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列名自己替换一下
      

  6.   

    飞扬辛苦你了!
    但是你写的太复杂,我看不懂!我把列名给你,麻烦你再写一次,并稍加解释!
    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)
      

  7.   

    paoluo你真猛!
    向你致敬!我想问一下大写的A和B是什么意思?
      

  8.   

    我的改写就是这样的。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还是要生成一个新表呢??
      

  9.   

    大写的A、B只是你两个表的别名而已,这样写出来的SQL就会短些。