SQL 合并两张表,请高手指教!!!

freetd 2009-08-27 12:20:16
问题简述:现有两张表,A和B。两张表的列数、列名都有可能相同,现在要把这两张表合并起来存到第三张表(这张表是根据表A和表B的结构来创建的),相同列名的数据就存到同一列,没有的列的值就为空,第三张表的列名也就是A、B两张表的列名的并集,要求第三张表列的数据类型要跟表A、B的列的数据类型
有没有高手给我一条SQL语句或者多条SQL语句来实现这个功能,如果不够分,后面可以再加
...全文
946 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
rigah 2009-11-03
  • 打赏
  • 举报
回复
select * into table3 from
( select a,b,c,,, from table1 union all select ,,,d,e,f from table2) a
weichaozu131083 2009-08-27
  • 打赏
  • 举报
回复
把30分给我,我就告诉你,
freetd 2009-08-27
  • 打赏
  • 举报
回复
郁闷阿,每次到csdn来提问都得不到满意的答案的,csdn的高手都去哪里了,是不是做兼职忙不过来
htl258_Tony 2009-08-27
  • 打赏
  • 举报
回复
union all



full join

请提供相关测试数据。
freetd 2009-08-27
  • 打赏
  • 举报
回复
我还有一个问题,使用Uinon all的前提条件是两张表的列数是相同的,但我要合并的表的列数不一定是相同的,有没有高手高诉我答案阿
华夏小卒 2009-08-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 freetd 的回复:]
对了各位兄弟姐妹们,我漏了一个很重要的条件没有补上,就是A、B两张表的列名是不知道的,
已知的条件是这两张表(A和B)的名称,这两张表的列名有相同的和有不相同的
[/Quote]...
freetd 2009-08-27
  • 打赏
  • 举报
回复
对了各位兄弟姐妹们,我漏了一个很重要的条件没有补上,就是A、B两张表的列名是不知道的,
已知的条件是这两张表(A和B)的名称,这两张表的列名有相同的和有不相同的
华夏小卒 2009-08-27
  • 打赏
  • 举报
回复

select a,b,c,0.00,'' from a
union all
select 0,0.00,c,d,e from b
freetd 2009-08-27
  • 打赏
  • 举报
回复

C表:
[a](是int类型) [b](是decimal类型) [c](是varchar类型)[d](是float类型)[e](是varchar类型
2 2222343.321 4378
6 6903.198 23348
7 9274.203 38920
8 10393.338 89761
tb1312 8879.1111 aaaa
fx3899 91273.1209 dddd
iuttt 23218.0928 ccee
freetd 2009-08-27
  • 打赏
  • 举报
回复
A、B两表合并后的结果是: 
C表:
[a](是int类型) [b](是decimal类型) [c](是varchar类型)[d](是float类型)[e](是varchar类型
2 2222343.321 4378
6 6903.198 23348
7 9274.203 38920
8 10393.338 89761
tb1312 8879.1111 aaaa
fx3899 91273.1209 dddd
iuttt 23218.0928 ccee
htl258_Tony 2009-08-27
  • 打赏
  • 举报
回复
不同类型的字段是需要转换的,这点相信楼主会做.
freetd 2009-08-27
  • 打赏
  • 举报
回复
Union all怎么做才能使第三张表的结构跟A、B表的结构一样呢?
举个例子:
A表有3列:
[a](是int类型) [b](是decimal类型) [c](是varchar类型
2 2222343.321 4378
6 6903.198 23348
7 9274.203 38920
8 10393.338 89761
B表也有三列:
[c](是varchar类型) [d](是float类型) [e](是varchar类型
tb1312 8879.1111 aaaa
fx3899 91273.1209 dddd
iuttt 23218.0928 ccee

当然A、B两表的列还有各种类型的......
注:A、B两表相同的列的类型是相同的
黄_瓜 2009-08-27
  • 打赏
  • 举报
回复
Union all
  • 打赏
  • 举报
回复
上面楼主说的对,用Union all
lihan6415151528 2009-08-27
  • 打赏
  • 举报
回复
用union all
freetd 2009-08-27
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 weiweipxb 的回复:]
还是把你要实现什么 功能说一下吧,估计用不着这样
[/Quote]
我要实现的功能就是根据获得的两个表的表名,把这两张表头尾相接的合并成第三张表,要求就是上面写的那些
weiweipxb 2009-08-27
  • 打赏
  • 举报
回复
还是把你要实现什么 功能说一下吧,估计用不着这样

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧