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;
将选择列表中的列放在括号之间是完全无用的。将选择列表中的列放在括号之间是完全无用的。谢谢,因为我没有连接键,这很好。谢谢,因为我没有连接键,这很好。