次の表を検討してください。SQL:重複レコードを削除する - 別の種類にもかかわらず
TAB6
A B C
---------- ---------- -
1 2 A
2 1 A
2 3 C
3 4 D
私が考える、レコード{1,2、A}と{2、1、A}重複します。私は以下のレコードセットを選択して生産する必要があります:
A B C A B C
---------- ---------- - ---------- ---------- -
1 2 A or 2 1 A
2 3 C 2 3 C
3 4 D 3 4 D
私は以下の質問を試しました。しかし、役に立たない。
select t1.*
from t6 t1
, t6 t2
where t1.a <> t2.b
and t1.b <> t2.a
and t1.rowid <> t2.rowid
/
A B C
---------- ---------- -
1 2 A
2 1 A
2 1 A
2 3 C
3 4 D
3 4 D
6 rows selected.
あるいはこの:
select *
from t6 t1
where exists (select * from t6 t2 where t1.a <> t2.b and t1.b <> t2.a)
/
A B C
---------- ---------- -
1 2 A
2 1 A
2 3 C
3 4 D
の両方が動作しませんでした。
データベースはOracle 10gです。純粋なSQLソリューションを探しています。すべての助けに感謝します。
あなたが達成するために、正確に何をしようとしていますか?これを拡大してください。 – simchona
レコードセット{1,2、A}、{2,3、C}と{3,4、D}を生成するにはSQLが必要です。私の場合、{1,2、A}と{2、1、A}は重複したレコードであり、結果セットはタプル({1,2、A}または{2、1、A} ) –
「削除する」とは、*削除するのではなく、結果セットからフィルタを削除することだけです。 – APC