2016-11-08 2 views
-1

Iは、二つのソーステーブルを有するTABLE_1TABLE_2のDB2 INSERT

が彼らそれぞれ私がつかむしたいデータの一つの列を有し、それぞれの行のまったく同じ数を有し、I 「ペアワイズそうのような第三のテーブルにそれらを一致するようdは:

これが一致しない Table_3でデータを構文を使用した場合、 Column_B内の行は、代わりに欠落しているフィールドが移入されている
Column_A | Column_B 
    Val1 | ValA 
    Val2 | ValB 
    Val3 | ValC 
    Val4 | ValD 

Column_Aの値の横に並んでいます。

+0

全く役に立ちません。 –

答えて

2

まず、同じ行があるからといって、簡単に組み合わせることはできません。あなたはそれらを一緒に参加することができます:

INSERT INTO Table_3 (Column_A, Column_B) 
    SELECT t1.Column_A, t2.Column_B 
    FROM Table_1 t1 JOIN 
     Table_2 t2 
     ON t1.?? = t2.?? 

ご質問はJOINキーはどうあるべきかを明確にしません。あなたがJOIN鍵を持っていますが、任意のペアをしたくない場合は

、あなたはjoinキーを割り当てるために使用row_number()を行うことができます。括弧の間の選択リスト内の列を置く

INSERT INTO Table_3 (Column_A, Column_B) 
    SELECT t1.Column_A, t2.Column_B 
    FROM (SELECT t1.*, ROW_NUMBER() OVER (ORDER BY Column_A) as seqnum Table_1 t1 
     ) JOIN 
     (SELECT t2.*, ROW_NUMBER() OVER (ORDER BY Column_B) as seqnum Table_2 t2 
     ) t2 
     ON t1.seqnum = t2.seqnum; 
+0

ありがとう、私は結合キーを持っていないので、これは素晴らしい作品です。 – joshi123