TSQL - 合并两个表
问题描述:
我有一个以下任务:我有一个过程中的两个单列表,他们都有相同数量的行。我想“合并”他们,所以我得到一个结果表与2列。我有一些简单的方法呢?TSQL - 合并两个表
在最坏的情况下,我可以尝试添加主键,并使用INSERT INTO ... SELECT
与JOIN
,但它需要我已有的代码有很大的变化,所以我决定问你们。
只是为了解释我的答案,下面是例子。我有以下表格:
tableA
col1
----
1
2
3
4
tableB
col2
----
a
b
c
d
Resulting table:
col1 | col2
1 | a
2 | b
3 | c
4 | d
答
你可以这样做:
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 |
看到它在此采取行动:
只是在下面解释我的答案。我有以下表格: – Moby04 2013-05-13 17:30:19
在一般收集条款中,这是两个集合的“zip”。 (想想这就像你的夹克上的拉链,而不是一个压缩文件。)这个概念的.NET和Ruby实现甚至被称为“Zip”。 – GalacticCowboy 2013-05-13 17:49:28