如何在oracle中使用不同的Rowid查找类似的数据?

时间:2016-04-03 10:10:19

标签: sql database oracle rowid

我有一张这样的表:

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

我需要找到那些rowid的X=Y,但他们的rowid不一样?与第1行的X和第2行的Y相同,但它们位于不同的行中。

3 个答案:

答案 0 :(得分:0)

您想要重复的行:

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

答案 1 :(得分:0)

请检查一下是否有效

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

答案 2 :(得分:0)

你可以通过多种方式做到这一点,自从你提起rowid以来,这就是其中之一:

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