3 Stimmen

Perl JOIN-ähnliches Verhalten in Oracle?

Ich habe zwei Tabellen, nennen wir sie PERSON und NAME.

 PERSON
  person_id
  dob

 NAME
  name_id
  person_id
  name

Und nehmen wir an, die Tabelle NAME enthält Daten wie:

name_id  person_id  name
1        1          Joe
2        1          Fred
3        1          Sam
4        2          Jane
5        2          Kim

Ich brauche eine Abfrage (Oracle 10g), die Folgendes zurückgibt

name_id   names
1         Joe, Fred, Sam
2         Jane, Kim

Gibt es eine einfache Möglichkeit, dies zu tun?


Aktualisierung:

Laut dem Artikel, den figs freundlicherweise zur Verfügung gestellt hat, können Sie dies ab 9i tun:

SELECT wmsys.wm_concat(dname) departments FROM dept;

Für dieses Beispiel lautet die Antwort:

SELECT name_id,  wmsys.wm_concat(name) from names group by name_id

0 Stimmen

Sie finden vielleicht dieser Artikel hilfreich zu sein.

0 Stimmen

Meinen Sie nicht person_id in diesem Abfrageergebnis?

0 Stimmen

Vorsicht! Der Ausgabetyp von wm_concat() wurde in den letzten Patches von varchar auf lob geändert. Die Rückwandlung in char funktioniert jedoch.

0voto

Mike McAllister Punkte 1439

Die kurze Antwort ist, eine PL/SQL-Funktion zu verwenden. Weitere Einzelheiten finden Sie unter este Posten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X