Sql server 合并两个表中的两列
我必须合并两个不相关表中的两列,在另一个表中具有相同行数,如 表A:Sql server 合并两个表中的两列,sql-server,sql-server-2005,Sql Server,Sql Server 2005,我必须合并两个不相关表中的两列,在另一个表中具有相同行数,如 表A: AColumn 'ABC' '152' 'XXX' 表B: BColumn 'FF' 'CD' '91' 目标表(表C)的预期结果: 显然,这看起来很简单,但我找不到实现它的方法 我的尝试是这样的: SELECT A.AColumn as CColumn1, B.BColumn as CColumn2 into C FROM A INNER JOIN B ON 1=1 但这显然会在元素上生成所有可能的组
AColumn
'ABC'
'152'
'XXX'
表B:
BColumn
'FF'
'CD'
'91'
目标表(表C)的预期结果:
显然,这看起来很简单,但我找不到实现它的方法
我的尝试是这样的:
SELECT A.AColumn as CColumn1, B.BColumn as CColumn2 into C
FROM A INNER JOIN B ON 1=1
但这显然会在元素上生成所有可能的组合,而我只希望A中的第一行与B中的第一行匹配,第二行与第二行匹配,等等。
有什么帮助吗?您需要在每个表中添加一个行号,并将其连接起来,下面是一个使用两个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:
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