TSQL - 合并两个表

时间:2013-05-13 17:21:22

标签: sql-server tsql stored-procedures

我有一个以下任务:我在一个过程中有两个单列表,它们都有相同的行数。我想“合并”它们,所以我得到一个包含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

1 个答案:

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

请在此处查看: