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)
你可以这样做:
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)
在这里看到它: