首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle查询where field1=field2和field2=field1

Oracle查询where field1=field2和field2=field1
EN

Stack Overflow用户
提问于 2019-03-19 09:21:21
回答 3查看 309关注 0票数 0

所以我有一个包含链接关系的表。Field1是and ID,Filed2是ID,到目前为止我已经消除了重复的字段1\字段2组合。然而,我仍然有相反的情况发生。这意味着对于同一记录,在Field1中出现Field2和Field2时,会出现Field1。我在inner join中尝试了一个子查询,但它返回到很多行。提前感谢!

代码语言:javascript
复制
select a.field1, a.field2 from linktable
inner join (select field1, field2 from linktable) b on a.field1=b.field2 and a.field2=b.field1;

示例数据:

代码语言:javascript
复制
insert into linktable(field1, field2) values ('ABC', '123');
insert into linktable(field1, field2) values ('123', 'ABC');

我想识别并删除出现上述样本数据的情况。

EN

回答 3

Stack Overflow用户

发布于 2019-03-19 10:02:38

像这样的东西应该会让你得到配对:

代码语言:javascript
复制
SELECT a.field1, a.field2
  FROM linktable a
  JOIN linktable b ON (b.field1 = a.field2 AND b.field2 = a.field1)

编辑:查找其中一对的示例:

代码语言:javascript
复制
create table linktable(id number, field1 varchar2(32), field2 varchar2(32));
insert into linktable(id, field1, field2) values (1, 'ABC', '123');
insert into linktable(id, field1, field2) values (2, '123', 'ABC');

SELECT a.field1, a.field2, LEAST(a.id, b.id) AS id_to_delete
  FROM linktable a
  JOIN linktable b ON (b.field1 = a.field2 AND b.field2 = a.field1);

结果:

代码语言:javascript
复制
FIELD1  FIELD2  ID_TO_DELETE
123     ABC     1
ABC     123     1
票数 1
EN

Stack Overflow用户

发布于 2019-03-19 09:24:31

这是你想要的吗?

代码语言:javascript
复制
select field1, field2
from (select field1, field2, 
             row_number() over (partition by least(field1, field2), greatest(field1, field2) order by field1) as seqnum
      from t
     ) t
where seqnum = 1;

这将返回一个field1/field2实例,而与排序无关。

票数 0
EN

Stack Overflow用户

发布于 2019-03-19 09:38:59

你应该发布样本数据和预期结果。

我认为这个查询可能对您有效,这样可以防止相反的情况发生,因为field1, field2 = (x, y)(y, x)

代码语言:javascript
复制
SELECT field1, field2 
FROM linktable
WHERE field1 >= field2;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55232357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档