我有两个表A和B,包含30列(相同变量名称,不同年份的数据),没有主键,每个记录近百万条记录。SQL:在String上外连接两个表并将类似插入另一个
我想比较A.X1
与B.X1
(nvarchar8
,包含空格, - ,字母和数字),并插入外连接在另一个表C中的结果(与相同的30列),所以我有A和其中B都行! = B.X1上的A)。
实施例:
表A
X1 X2 X3 ..... X30
11 E R ..... G
12 R 4 L
13 S 5 NULL
14 D T NULL
表B
X1 X2 X3 ..... X30
11 E R ..... G
12 R 4 L
15 R2 56 NULL
16 R1 T1 NULL
所得表C中
X1 X2 X3 ..... X30
11 E R ..... G
12 R 4 L
13 S 5 NULL
14 D T NULL
15 R2 56 NULL
16 R1 T1 NULL
我如何做到这一点。
我试图
INSERT INTO C
SELECT *
from A
full outer join B
on A.X1 = B.X1
错误,我得到
Msg 213, Level 16, State 1, Line 1
Insert Error: Column name or number of supplied values does not match table definition.
我有C语言创建的,这是目前空。 becasue你在你需要的列数的两倍连接表和retunring *,与生病结果
看来你需要的是A和B的UNION – Noel
而不是SELECT *您应该指定列名称。 –
而且您还应该始终在'INSERT'子句中指定该列以避免任何意外和问题! –