0

假设我有两张桌子

表格1

COl_1 COl_2

1     5
2     6
3     7
4     8

和表 2

COL3    COL4
9      13
10     14
11     15
12     16

我想要以下内容:

COL_1   COL_2   COL3    COL4
1        5        9     13
2        6        10    14
3        7        11    15
4        8        12    16

此外,每个表中的行数每次都完全相同,没有键关系或完整性。

有什么线索吗?

4

2 回答 2

2

您可以使用row_number()向两个表添加“加入”键来执行此操作:

select t1.col_1, t1.col_2, t2.col_3, t2.col_4
from (select t1.*, row_number() over (order by col_1) as seqnum
      from table1 t1
     ) t1 join
     (select t2.*, row_number() over (order by col_3) as seqnum
      from table2 t2
     ) t2
     on t1.seqnum = t2.seqnum;

如果表的行数不同,您可能需要外连接。

于 2017-09-13T12:22:20.887 回答
0

您可以添加一个标识列作为 row_number() 的替代方法,如下所示

alter table Table_1 add id int identity(1,1)
alter table Table_2 add id int identity(1,1)

然后使用此 ID 列,您可以按如下方式连接两个表(如 LONG 建议的 FULL JOIN)

select col1, col2, COL3, COL4
from Table_1
full outer join Table_2 on Table_1.id = Table_2.id

使用一些额外的数据,您可以获得以下结果

在此处输入图像描述

于 2017-12-22T06:28:41.300 回答