none
合并多歌结果集为一个结果集,每个结果集有一列是字段名和类型都是相同,合并后的结果集如何做到列名相同的不变去重复,列名不同的追加成合并的结果集的新列? RRS feed

  • 问题


  • 有以下三个结果集


      id    age

      1      18

      2      19

      3      25

     id    name

     1      张三

     2     李四

     id      hobby

     1        甲

     2        丙

     3        一

     4        二

     5       三

     

    这三个结果集,每一个都有一个列名是相同的,字段也是相同的。

    我想要以下合并效果, id列去重复,其他的列追加成结果集的新列

    id      hobby      age     name

     1        甲           18      张三

     2        丙           19      李四

     3        一           25      null

     4        二           null     null

     5        三           null     null

    2018年10月6日 12:52

答案

  • Hi 便携式家园,

    这种情况用full outer join就可以了。

    select id = case
    when a.id is null and b.id is not null then b.id
    else c.id
    end,a.age,b.name,c.hobby from dbo.age as a
    full join dbo.[name] as b on a.id = b.id
    full join dbo.hobby as c on a.id = c.id

    Best Regards,
    Teige

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    2018年10月8日 2:10
    版主