【问题标题】:Getting distinct pairs from one table column从一个表列中获取不同的对
【发布时间】:2016-10-22 01:14:38
【问题描述】:

我试图从 Oracle 中的查询中获取一对唯一的值,基本上如下所示:

 select a.name, b.name 
 from table1 a
 join table1 b on a.attribute = b.attribute

现在这应该给我一堆重复的值,比如

  • 苹果、香蕉
  • 橙子,猕猴桃
  • 香蕉,苹果
  • 猕猴桃,橙

但我只是得到

  • 苹果,苹果
  • 香蕉,香蕉
  • 猕猴桃,猕猴桃
  • 橙,橙

当我添加时

 select a.name, b.name 
 from table1 a
 join table1 b on a.attribute = b.attribute
 where a.attribute < b.attribute

我得到“没有选择行”

我不知道我做错了什么,请帮忙

【问题讨论】:

  • 您可能需要where a.name &lt; b.name - 想想您想要达到的目标,以了解为什么这是正确的条件,而不是您在尝试中遇到的条件。

标签: sql oracle


【解决方案1】:

您可以使用 a.name b.name

省略加入同名
select a.name, b.name from table1 a
join table1 b
on a.name <> b.name    

【讨论】:

  • 谢谢我在任何地方都找不到
【解决方案2】:

似乎两个表中的相同属性对应相同的名称。 如果你使用

on a.attribute != b.attribute

您将获得每对可能的不同名称。 如果你仍然得到一对相同的名字,你可以添加

where a.name != b.name

这是你需要的吗?

【讨论】:

    猜你喜欢
    • 2016-05-18
    • 2023-03-08
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 2015-03-13
    相关资源
    最近更新 更多