合并两个表中的两列

时间:2018-04-14 18:55:52

标签: sql-server sql-server-2005

我必须合并两个不相关的表中的两列,并在另一个表中使用相同的行数,例如

表A:

AColumn
 'ABC'
 '152'
 'XXX'

表B:

BColumn
  'FF'
  'CD'
  '91'

目的地表的预期结果(表C):

CColumn1    CColumn2

 'ABC'        'FF'
 '152'        'CD'
 'XXX'        '91'

显然这看起来非常简单,但我无法找到实现目标的方法。

我的尝试将是这样的:

SELECT A.AColumn as CColumn1, B.BColumn as CColumn2 into C
FROM A INNER JOIN B ON 1=1

但这显然会在元素上生成所有可能的组合,而我只希望A中的第一行与B的第一行匹配,第二行与第二行匹配,等等。 有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

你需要为每个表添加一个row_number并加入,这是一个使用两个CTE的例子:

with a as (
     select AColumn, row_number() over(order by (select null)) rn
     from Table1
 ),
b as (
     select BColumn, row_number() over(order by (select null)) rn
     from Table2
 )
 select a.AColumn, b.BColumn
 from a full outer join b
     on a.rn = b.rn

Sql Fiddle:http://sqlfiddle.com/#!18/291c7/4