|
我有两个sql数据库,他们包含的表的结构和列名有些许差别,
比如a库中的一个表中包括了:
姓名 / 性别 /工作单位
而b库中的表中可能就是:
姓名 /身份证号码 /通讯地址。
b库中的“通讯地址”列,可能在a库中就是存在于另一个别的表里面。
现在我想把两个库的数据合并,请问有什么简洁的办法做到吗?
第一个查询:
select a.姓名,性别,工作单位,b.通迅地址,身份证号码 into newTable from A库.dbo.table1 as a,b库.dbo.table2 as b where a.姓名=b.姓名
第二个查询:(也就是您要的)
select 姓名=isnull(a.姓名,b.姓名),性别,工作单位,b.通迅地址,身份证号码 into newTable from A库.dbo.table1 as a full join b库.dbo.table2 as b on a.姓名=b.姓名
与第一个查询不同的是,使用了全联接,
记录数=关键字相同的记录(也就是第一个查询中的记录)+只有A库中存在的记录数+只有B库中存在的记录数。
第三个查询:
select 姓名A=a.姓名,姓名b=b.姓名,性别,工作单位,b.通迅地址,身份证号码 into newTable from A库.dbo.table1 as a full join b库.dbo.table2 as b on 1=2
第三个查询与第二个查询不同的是,得到的记录数是两个表的记录数之合,字段也是两个表的字段之合,重复的姓名也不全并
|
|