TSQL - 合并两个表

Mob*_*y04 2 t-sql sql-server stored-procedures

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

在最坏的情况下,我可以尝试添加主键并使用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
Run Code Online (Sandbox Code Playgroud)

Mah*_*mal 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
Run Code Online (Sandbox Code Playgroud)

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

| COL1 | COL2 |
---------------
|    1 |    a |
|    2 |    b |
|    3 |    c |
|    4 |    d |
Run Code Online (Sandbox Code Playgroud)

在这里看到它: