두 개의 테이블 A와 B는 30 개의 열 (동일한 변수 이름, 다른 연도의 데이터)을 가지며 기본 키는 없으며 각각 거의 백만 개의 레코드가 있습니다.SQL : 외부에서 두 테이블을 String으로 조인하고 다른 테이블과 비슷하게 삽입하십시오.
내가 B.X1
와 A.X1
비교하려는 (nvarchar8
를 공백 포함 - 문자 및 숫자)와 외부 (같은 30 열) 다른 테이블의 C 결과에 가입 삽입 그래서 나는 B A의 모든 행이! = 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 테이블 C에게 결과
X1 X2 X3 ..... X30
11 E R ..... G
12 R 4 L
15 R2 56 NULL
16 R1 T1 NULL
내가 그렇게 할 방법
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
.
나는 현재 비어있는, 내가 C가 만든 내가을 얻을Msg 213, Level 16, State 1, Line 1
Insert Error: Column name or number of supplied values does not match table definition.
INSERT INTO C
SELECT *
from A
full outer join B
on A.X1 = B.X1
오류를 시도했다. 당신이 필요로 열 수의 두 배에 병이 결과 테이블과 retunring의 *를, 합류를 변경할 수 없기
그것은 당신이 필요로하는 모든 것 A와 B의 UNION입니다 – Noel
SELECT *가 아니라 열 이름을 지정해야합니다. –
그리고 놀라움과 문제를 피하려면 항상 INSERT 절에 열을 지정해야합니다! –