如何在没有ON的情况下加入表

时间:2017-10-30 07:30:59

标签: sql sql-server select join merge

如果我们有两个或更多表没有相同的列。

表1

Col1 | Col2
1    |   2
3    |   4

表2

Col3 | Col4
 5   |   6
 7   |   8

我们希望将这两个表组合起来并将其保存为新表

新表

Col1 | Col2 | Col3 | Col4
 1   |   2  |   5  |   6
 3   |   4  |   7  |   8

我不知道我必须使用什么。如果使用加入,它必须有相同的表来配对,但这不具有相同的列

注意:我使用的是SQL SERVER

1 个答案:

答案 0 :(得分:4)

您可以使用row_number窗口函数创建要加入的假列:

SELECT co1l, col2, col3, col4
FROM   (SELECT col1, col2, ROW_NUMBER() OVER (ORDER BY col1, col2) AS rn
        FROM   table1) t1
JOIN   (SELECT col3, col4, ROW_NUMBER() OVER (ORDER BY col3, col4) AS rn
        FROM   table2) t2 ON t1.rn = t2.rn