问题简述:现有两张表,A和B。两张表的列数、列名都有可能相同,现在要把这两张表合并起来存到第三张表(这张表是根据表A和表B的结构来创建的),相同列名的数据就存到同一列,没有的列的值就为空,第三张表的列名也就是A、B两张表的列名的并集,要求第三张表列的数据类型要跟表A、B的列的数据类型
   有没有高手给我一条SQL语句或者多条SQL语句来实现这个功能,如果不够分,后面可以再加

解决方案 »

  1.   

    union all或full join 
    请提供相关测试数据。
      

  2.   

    上面楼主说的对,用Union all
      

  3.   

    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两表相同的列的类型是相同的
      

  4.   

    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
      

  5.   


    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
      

  6.   


    select a,b,c,0.00,'' from a
    union all 
    select 0,0.00,c,d,e from b
      

  7.   

    对了各位兄弟姐妹们,我漏了一个很重要的条件没有补上,就是A、B两张表的列名是不知道的,
    已知的条件是这两张表(A和B)的名称,这两张表的列名有相同的和有不相同的
      

  8.   

    我还有一个问题,使用Uinon all的前提条件是两张表的列数是相同的,但我要合并的表的列数不一定是相同的,有没有高手高诉我答案阿
      

  9.   

    郁闷阿,每次到csdn来提问都得不到满意的答案的,csdn的高手都去哪里了,是不是做兼职忙不过来
      

  10.   

    select * into table3  from 
    ( select a,b,c,,, from table1 union all select ,,,d,e,f from table2) a