两个表无任何关联,简单合并

来源:互联网 发布:c语言入门到精通网盘 编辑:程序博客网 时间:2024/05/29 13:52
现在有个需求把表1和表2合并在一起,这两表没有任何关联。

A表 : 编号 姓名 金额
  1 张一 10
  2 张二 20
  3 张三 30
    
    
B表 : 编号 姓名 金额
  1 李一 100
  2 李二 200
  3 李三 300
  4 李四 400

最后效果为:  
  编号 姓名 金额 编号 姓名 金额
  1 张一 10 1 李一 100
  2 张二 20 2 李二 200
  3 张三 30 3 李三 300

  4 李四 400


答案:


Createtable a([编号]int,[姓名]nvarchar(2),[金额]int)

Insert a

select1,N'张一',10unionall

select2,N'张二',20unionall

select3,N'张三',30

Createtable b([编号]int,[姓名]nvarchar(2),[金额]int)

Insert b

select1,N'李一',100unionall

select2,N'李二',200unionall

select3,N'李三',300unionall

select4,N'李四',400

go


select m.编号,m.姓名,m.金额,

n.编号,n.姓名,n.金额

from(select t.* , px = row_number()over(orderby 编号)from a t) m

fulljoin (select t.* , px = row_number()over(orderby 编号)from b t) n

on m.px = n.px

droptable a , b


/*编号 姓名 金额 编号 姓名 金额----------- ---- ----------- ----------- ---- -----------1 张一 10 1 李一 1002 张二 20 2 李二 2003 张三 30 3 李三 300NULL NULL NULL 4 李四 400(4 行受影响)*/