我在表 Hyperlink 中有两列,源和目标,用于存储超链接的源和目标。
source | destination
--------------------
a | b
b | c
c | d
c | b
有两个超链接同时涉及 b 和 c。两个超链接之间的区别在于超链接的方向。然而,我的目标是检索唯一的超链接,无论哪个方向。因此,对于诸如从 b 到 c 和从 c 到 b 之类的超链接,我只想选择其中之一。任何人都可以。
所以我的结果应该是这样的:
source | destination
--------------------
a | b
b | c
c | d
到目前为止,我能够在 Java 中实现这一点,并在使用 JDBC 执行 SQL 语句之前进行一些处理。然而,当表变得非常大时,这将变得非常乏味。
我想知道是否有办法可以用 SQL 来代替。
I tried SELECT DISTINCT source,destination FROM Hyperlink
但它返回给我独特的排列。我需要独特的组合。
Thanks!
使用 less() 和 Great() 运算符可以轻松实现这一点,但由于 MySQL 不支持它们,因此您需要使用 CASE 构造来获取更小/更大的值。对于两列,这是可以的,但是一旦涉及更多列,这个解决方案就会变得非常混乱
select distinct
case
when source < destination then source
else destination
end as source,
case
when source > destination then source
else destination
end as destination
from hyperlinks
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)