Sql db2从多个源表插入目标表

Sql db2从多个源表插入目标表,sql,db2,insert-into,Sql,Db2,Insert Into,我有两个源表,TABLE_1和TABLE_2 它们每个都有一列我想获取的数据,每个都有完全相同的行数,我想在第三个表中成对地匹配它们,如下所示: Column_A | Column_B Val1 | ValA Val2 | ValB Val3 | ValC Val4 | ValD 使用此语法时,表_3中的数据不匹配,列_B中的行填充缺少的字段,而不是排列在列_A值旁边 INSERT INTO Table_3 (Column_A) SELECT Column_A

我有两个源表,
TABLE_1
TABLE_2

它们每个都有一列我想获取的数据,每个都有完全相同的行数,我想在第三个表中成对地匹配它们,如下所示:

Column_A | Column_B
    Val1 | ValA
    Val2 | ValB
    Val3 | ValC
    Val4 | ValD
使用此语法时,
表_3
中的数据不匹配,
列_B
中的行填充缺少的字段,而不是排列在
列_A
值旁边

INSERT INTO Table_3 (Column_A)
SELECT Column_A FROM Table_1;
INSERT INTO Table_3 (Column_B)
SELECT Column_A FROM Table_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
键,但需要任意对,则可以使用
row\u number()
分配
JOIN
键:

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;

首先,仅仅因为您有相同的行,并不意味着您可以轻松地组合它们。您可以将它们连接在一起:

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
键,但需要任意对,则可以使用
row\u number()
分配
JOIN
键:

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;

将选择列表中的列放在括号之间是完全无用的。将选择列表中的列放在括号之间是完全无用的。谢谢,因为我没有连接键,这很好。谢谢,因为我没有连接键,这很好。