在SQL中组合来自两个不相关表的列

时间:2017-09-13 12:20:42

标签: sql hana-sql-script

我们说我有两张桌子

表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

此外,每个表中的行数完全相同, 没有关键关系或诚信的东西。

有任何线索吗?

2 个答案:

答案 0 :(得分: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;

如果表具有不同的行数,则可能需要外部联接。

答案 1 :(得分: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建议的全加入)

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

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

enter image description here