2

我需要在 SQL Server 中组合两个表。但是我需要将表 A 的每个项目与表 B 的每个项目都有一行,从而产生一个表 C。我会是这样的:

Table A
A
B
C
D

Table B
1
2
3

Table C
column x | cloumn Y
   A           1
   A           2
   A           3
   B           1
   B           2 
   B           3
   C           1
   C           2
   C           3
   D           1
   D           2
   D           3

谢谢大家!

4

2 回答 2

6

你可以简单地这样做:

SELECT 
 a.a + CAST(b AS VARCHAR(2)) AS a
FROM tablea a
CROSS JOIN tableb AS b;

看看它的实际效果:

然后您可以使用该INTO子句将它们插入到已经存在的表中:

INSERT INTO tablec(c)
SELECT 
 a.a + CAST( b AS VARCHAR(2)) AS a
FROM tablea a
CROSS JOIN tableb AS b;

或从这些值创建一个新表:

SELECT 
 a.a + CAST( b AS VARCHAR(2)) AS c
INTO Tablec
FROM tablea a
CROSS JOIN tableb AS b;

更新的 SQL Fiddle 演示

请注意:我假设了列的名称,因为您没有在问题中指定它们。

于 2013-04-05T22:20:44.853 回答
0

看起来您正在尝试获取以下内容:

select a.col1, b.col1
into tableC
from tableA a
cross join tableB b
于 2013-04-06T02:00:35.607 回答