暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 删除跨列重复值的SQL查询

askTom 2018-05-07
290

问题描述

我在表中有三个字段,分别是from_city,to_city和distance。

Table name: City_distance

From_city to_city distance
----------------------------------------
A B 100
B A 100
C B 200
C A 300
E F 700
F E 700
复制


在这里,我想显示第一和第二记录之间的任何人,因为r往返和相同的路径和相等的距离。类似于最后两张唱片。我只想显示所有其他一次。输出应该是这样的

From_city to_city distance
----------------------------------------
A B 100
C B 200
C A 300
E F 700

or

From_city to_city distance
----------------------------------------
B A 100
C B 200
C A 300
F E 700
复制


感谢您宝贵的回答

专家解答

叹息 ....

GOOD_BAD

无论如何 ....

SQL> create table t ( c1 varchar2(2), c2 varchar2(2), d int);

Table created.

SQL> insert into t values ('A','B', 100);

1 row created.

SQL> insert into t values ('B','A', 100);

1 row created.

SQL> insert into t values ('C','B', 200);

1 row created.

SQL> insert into t values ('C','A', 300);

1 row created.

SQL> insert into t values ('E','F', 700);

1 row created.

SQL> insert into t values ('F','E', 700);

1 row created.

SQL> select
  2    distinct
  3    greatest(c1,c2),
  4    least(c1,c2),
  5    d
  6  from t;

GR LE          D
-- -- ----------
F  E         700
C  A         300
C  B         200
B  A         100

4 rows selected.
复制


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论