2016-10-22 3 views
2

Ich versuche, ein einzigartiges Paar von Werten aus einer Abfrage in Oracle zu erhalten, die im Grunde wie folgt aussieht:Erste verschiedene Paare von einer Tabellenspalte

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

Nun sollte diese mir gibt eine Reihe von wiederholten Werten wie

  • Apfel, Banane
  • Orange, Kiwi
  • Banane, Apfel
  • Kiwi, Orange

sondern bekomme ich nur

  • Apfel, Apfel
  • Banane, Banane
  • Kiwi, Kiwi
  • orange, orange

wenn ich hinzufügen

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

erhalte ich „Keine Zeilen ausgewählt“

und ich weiß nicht, was ich falsch mache, bitte helfen Sie bitte

+0

Wahrscheinlich brauchen Sie 'wo a.name mathguy

Antwort

1

Sie weglassen können mit a.name <> b den gleichen Namen verbinden. Name

select a.name, b.name from table1 a 
join table1 b 
on a.name <> b.name  
+0

Danke, ich konnte das nirgendwo finden –

1

Es scheint, dass die gleichen Attribute in beiden Tabellen denselben Namen entsprechen. Wenn Sie

on a.attribute != b.attribute 

verwenden, werden Sie jedes mögliche Paar von verschiedenen Namen bekommen. Wenn Sie noch Paare gleichen Namen bekommen können Sie

hinzufügen
where a.name != b.name 

Ist das, was Sie brauchen?

Verwandte Themen