mehrere Zeilen zu Spalte

Kathi14

Benutzer
Beiträge
12
Hallo Experten,

ich habe folgendes Problem. Ich habe eine Tabelle Vorlesung mit zwei Spalten Vo_Nr und Name

Vo_nr Name
1 a
1 b
2 c
3 d
3 e
usw.

Ich hätte aber gerne dass meine Tabelle so aussieht: Alle Nummer sollen nur einmal vorkommen und die Namen sollen in der Spalte Name (mit dem Komma getrennt) gespeichert werden.

Vo_nr Name
1 a, b
2 c
3 d, e
usw.

In der Tabelle sind aber mehrere Vo_Nr gespeichert und unterschiedliche Namen und ich habe keine Ahnung wie ich es generisch lösen kann.

Ich würde sehr dankbar für die Hilfe!

Grüße,
Kathi
 
Werbung:
Hallo Experten,

ich habe folgendes Problem. Ich habe eine Tabelle Vorlesung mit zwei Spalten Vo_Nr und Name

Vo_nr Name
1 a
1 b
2 c
3 d
3 e
usw.

Ich hätte aber gerne dass meine Tabelle so aussieht: Alle Nummer sollen nur einmal vorkommen und die Namen sollen in der Spalte Name (mit dem Komma getrennt) gespeichert werden.

Vo_nr Name
1 a, b
2 c
3 d, e
usw.

In der Tabelle sind aber mehrere Vo_Nr gespeichert und unterschiedliche Namen und ich habe keine Ahnung wie ich es generisch lösen kann.

Ich würde sehr dankbar für die Hilfe!

Grüße,
Kathi

Code:
test=*# select * from kathi14 ;
 vo_nr | name
-------+------
  1 | a
  1 | b
  2 | c
  3 | d
  3 | e
(5 rows)

test=*# select vo_nr, array_to_string(array_agg(name),', ') from kathi14 group by vo_nr order by vo_nr;
 vo_nr | array_to_string
-------+-----------------
  1 | a, b
  2 | c
  3 | d, e
(3 rows)

so ginge es in PostgreSQL.
 
wow, das war aber super schnelle Antwort ;)
in Oracle funktioniert es auch perfekt mit:

LISTAGG(name, ',') WITHIN GROUP (ORDER BY name)

Vielen Dank!!

Liebe Grüße,
Kathi
 
Werbung:
Zurück
Oben