我有两个源表,TABLE_1
和TABLE_2
他们每个人都有一列我想要抓取的数据,每一行都有完全相同的行数,我希望在第三个表中成对匹配,如下所示:
Column_A | Column_B
Val1 | ValA
Val2 | ValB
Val3 | ValC
Val4 | ValD
使用此语法时,Table_3
中的数据不匹配,Column_B
中的行正在填充缺少的字段,而不是排在Column_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;
答案 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
个密钥但需要任意对,则可以使用row_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;