UNION ALL
또는 OUTER JOIN
을 사용할 수있는 방법에는 여러 가지가 있습니다.
이 당신에게 당신의 레코드 가져옵니다 : T1 및 T2 병합 : 당신을 가정
동일한 기록을 찾기 위해 Entry_ID을 사용하고 Entry_ID 각 테이블 내에서 고유 여기에 OUTER JOIN
방법이다
SELECT
CASE
WHEN T1.Entry_ID IS NULL THEN 'T2'
WHEN T2.Entry_ID IS NULL THEN 'T1'
ELSE 'Both'
END SourceTable,
COALESCE(T1.Entry_ID,T2.Entry_ID) As Entry_ID,
COALESCE(T1.Col1, T2.Col1) As Col1,
COALESCE(T1.Col2, T2.Col2) As Col2,
COALESCE(T1.Col3, T2.Col3) As Col3,
COALESCE(T1.Col4, T2.Col4) As Col4
FROM T1 FULL OUTER JOIN T2
ON T1.Entry_DI = T2.Entry_ID
ORDER BY COALESCE(T1.Entry_DI,T2.Entry_ID)
이 T3에 삽입 :
다시
INSERT INTO T3 (Entry_ID,Col1, COl2,Col3,Col4)
SELECT
COALESCE(T1.Entry_DI,T2.Entry_ID) As Entry_ID,
COALESCE(T1.Col1, T2.Col1) As Col1,
COALESCE(T1.Col2, T2.Col2) As Col2,
COALESCE(T1.Col3, T2.Col3) As Col3,
COALESCE(T1.Col4, T2.Col4) As Col4
FROM T1 FULL OUTER JOIN T2
ON T1.Entry_DI = T2.Entry_ID
당신이 Entry_ID 자신의 테이블 내에서 고유 할 필요가 있습니다해야하며이 t간에 일치하려면이 옵션을 사용하여 ables.
또한 insert 문에서 열리스트와 함께 선택 행의 열을 주목하십시오. 물리적 테이블의 열 순서는 중요하지 않습니다. INSERT와 SELECT는 줄을 서서 정렬해야합니다.
[this] (http://msdn.microsoft.com/en-us/library/bb510625.aspx) 시작하는 데 도움이됩니다. – abhi