日期:2014-05-18  浏览次数:20433 次

两个表,相同结构,需要将A表的信息插入到B表,某一列数据如果已存在,则不插入,不存在则插入
SQL code

A表
id   name   sex  desc
1    小明   男   调皮
2           女   可爱
B表
id   name   sex  desc
1    小明   男   调皮,但是思考能力强
3    小黑   男   老实
2    小白   女   可爱


得到:
A表
id   name   sex  desc
1    小明   男   调皮,但是思考能力强
2    小白   女   可爱
3    小黑   男   老实


现在我主要的问题是,不能够在插入数据的同时为name做判断,当name存在,这不修改name的信息,不存在,则修改



------解决方案--------------------
SQL code

update a
set a.name = b.name,a.sex = b.sex,a.[desc] = b.[desc]
from a join b on a.id = b.id

insert into a
select *
from b
where id not in (select id from a)

------解决方案--------------------
楼主可以考虑使用merge操作,如果数据库是2005以上的话