合并两个表中的两列
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
我必须合并来自两个不相关的 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