2016-04-03 6 views
0

は、私はこのようなテーブルを持っている:oracleで異なるRowidを使用して同様のデータを検索する方法は?

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

私はどこX=YこれらのROWIDのを見つける必要があるが、そのROWIDは同じではありませんか?第1行のXと第2行のYは同じですが、それらは異なる行にあります。

+1

クエリ結果の2つの異なる行に対して '' ROWID''は決して同じではありません – mmuzahid

+0

どの 'ROWID'値が必要ですかあなたの出力に?例えば、値「20」は、異なる「ROWID」を有するレコードの複数の一致する対を有する。どのような価値がありますか? –

+0

なぜrowIDが必要ですか? –

答えて

0

を働くあなたはそれを多くの方法を行うことができ、あなたがrowidを育てているので、これはそれらのいずれかの場合:

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

あなたが重複行をしたい:

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

確認してください、これは

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

rownumの意味は 無効なuser.table.column、table.column、または列の指定 – 5A9U

+0

ROWNUMは、問合せから行が出力されるときに生成される疑似列です。これは表内の列ではありません。おそらくあなたはROWIDを意味しましたか? –

関連する問題