【发布时间】:2009-06-10 19:24:45
【问题描述】:
我在 Oracle 中有一个表,其中包含两列我想查询包含唯一值组合的记录,而不管这些值的顺序如何。例如,如果我有下表:
create table RELATIONSHIPS (
PERSON_1 number not null,
PERSON_2 number not null,
RELATIONSHIP number not null,
constraint PK_RELATIONSHIPS
primary key (PERSON_1, PERSON_2)
);
我想查询所有独特的关系。因此,如果我有一条记录 PERSON_1 = John 和 PERSON_2 = Jill,我不想看到另一个记录 PERSON_1 = Jill 和 PERSON_2 = John。
有没有简单的方法可以做到这一点?
【问题讨论】:
-
您是否特别希望在表中允许此类“重复”并在查询时将其过滤掉?如果没有,那么您可能会考虑使用表检查约束或插入/更新触发器,检查表中是否不存在反转的主键。
-
是的,我想在表中允许重复组合,但还需要找到一种最佳方式来检索唯一集合。