如何在oracle中查找具有不同Rowid的相似数据



我有一个这样的表:

X   Y
======
20  20
20  20
20  21
23  22
22  23
21  20

我需要找到那些rowid,其中X=Y但它们的rowid不相同?就像第一行的X和第二行的Y是相同的,但它们在不同的行中。

您可以通过多种方式实现,并且由于您提出了rowid,这就是其中之一:

select * from yourtable tab1 join yourtable tab2 on tab1.x = tab2.y and tab1.rowid <> tab2.rowid

您想要重复的行:

select *
from
 (
   select x, y, rowid, count(*) over (partition by x,y) as cnt
   from tab
   where x=y
 ) dt
where cnt > 1

请检查这是否适用于

  select * from tab a where exists (select * from tab b where a.x=b.y and a.rowid!=b.rownid);

相关内容

  • 没有找到相关文章