【发布时间】:2012-02-08 10:34:40
【问题描述】:
考虑下表:
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 解决方案。感谢您的每一次帮助。
【问题讨论】:
-
您到底想完成什么?请对此进行扩展。
-
我需要一个 SQL 来生成记录集 {1, 2, A}, {2, 3, C} 和 {3, 4, D}。对我来说 {1, 2, A} 和 {2, 1, A} 是重复记录,结果集应该只有一个元组({1, 2, A} 或 {2, 1, A},但不能同时包含)
-
明确一点,“删除”是指从结果集中过滤而不是删除。
-
@APC,你是对的。去除手段,在结果集中过滤。谢谢指正。
标签: sql oracle duplicate-data duplicate-removal