连接具有非唯一ID的2个表以进行合并

时间:2014-06-09 19:51:37

标签: sql oracle

我需要将数据从另一个表迁移到我的。但是,我必须用来加入它们的ID不是唯一的(来自任何一个表的大约10%的ID都是重复的,它们不是主键)。

例如。表A的ID为(1, 1, 2, 3),表B的值为(1, 2, 2, 3, 4)我如何加入它们,以便它们省略重复项或从另一个表中取任何值作为正确的链接?

我的目标是返回一个视图,其中我正在加入的ID列中根本没有重复的行。

1 个答案:

答案 0 :(得分:0)

如何使用row_number()进行查询:

select a.*, b.*
from (select a.*, row_number() over (partition by id order by id) as seqnum
      from tablea a
     ) a join
     (select b.*, row_number() over (partition by id order by id) as seqnum
      from tableb b
     ) b
     on a.id = b.id and a.seqnum = 1 and b.seqnum = 1;