2

我有以下任务:我在一个过程中有两个单列表,它们都有相同数量的行。我想“合并”它们,以便得到一个包含 2 列的结果表。我有一些简单的方法吗?

在最坏的情况下,我可以尝试添加主键并使用INSERT INTO ... SELECTJOIN但它需要对我已经拥有的代码进行相当大的更改,所以我决定问你们。

只是为了在下面解释我的答案,这是示例。我有以下表格:

tableA
col1
----
1
2
3
4

tableB
col2
----
a
b
c
d

Resulting table:
col1 | col2
1    | a
2    | b
3    | c
4    | d
4

1 回答 1

9

你可以这样做:

SELECT t1.col1, t2.col1 AS col2
INTO NewTable
FROM
(
   SELECT col1, ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS RN
   FROM table1
) AS t1
INNER JOIN
(
   SELECT col1, ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS RN
   FROM table2
) AS t2 ON t1.rn = t2.rn

这将创建一个全新的表,其中包含两个表NewTable中的两列:

| COL1 | COL2 |
---------------
|    1 |    a |
|    2 |    b |
|    3 |    c |
|    4 |    d |

在这里查看它的实际效果:

于 2013-05-13T17:26:02.160 回答