合并两个表中的两列

Merging two columns from two tables

我必须合并来自两个不相关的 table 的两列,并且在另一个 table 中具有相同的行数,例如

Table答:

AColumn
 'ABC'
 '152'
 'XXX'

Table乙:

BColumn
  'FF'
  'CD'
  '91'

目的地的预期结果 table (table 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 中的第一行匹配,第二行与第二行匹配,等等。 有帮助吗?

您需要为每个 table 添加一个 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