String bei jedem Komma oder Semikolon trennen und Inhalt in neue Spalte schreiben

Hey,

Version 8.3.11 mit pg Admin 1.14.0

lG

PostgreSQL: Documentation: Manuals: PostgreSQL 9.1: Release 8.4


Andreas

was soll mir das jetzt sagen? Hast du nen Download Link zu 8.4? Sehe auf der Seite nicht durch.

In der (ziemlich alten Version) gab’s noch kein unnest(). Am besten machst Du ein upgrade auf 9.0 oder 9.1
Alternativ nimm die Funktion die akretschmer gepostet hat.

Habe es jetzt hinbekommen über die create function die unnest function herzustellen.

Wenn ich jetzt deinen Code unnest(string_to_array(“annotation”,’;’)) benutze, dann trennt er mir zwar am Semikolon, aber schreibt das Ergebnis untereinander in einer Spalte, ich möchte aber, dass es in verschiedenen Spalten in einer Zeile ausgegeben wird. Wie mach ich das?

Danke

lG

Ich dachte, Du hättest Dein Problem inzwischen so weit verstanden, daß Du die Einträge in Deiner Tabelle (aktuell 1 oder beliebig viele Einträge durch Komma getrennt) erst einmal in eine Form bringen willst, die mit SQL vernünftig bearbeitbar ist. Ich dachte auch, Du hättest verstanden, das eine variable Anzahl von Spalten je Datensatz NICHT die Lösung Deines Problems ist.


Andreas

Da ist was dran. Das stimmt

Aber: Weise ich alles in einer Spalte aus, was ja nun gut ist, dann habe ich aber das Problem, dass mir Einträge fehlen und er mir nur so viele Zeilen ausgibt, wie es in der Ursprungstabelle gibt. Theoretisch müssten ja aus 1000 Zeilen Annotation mit je 3 EInträgen insgesamt 3000 Zeilen werden, von denen bei 2000 die Spalte Annotation (alt) leer ist. Oder?

Ja. Die ursprüngliche Spalte wirfst Du ja eh weg, gell? Was bleibt, sind 3000 Zeilen mit einer Spalte, wo je eine (in Worten: EINE) Annotation steht. Mit solch einer Tabelle kannst dann weiter arbeiten…


Andreas

Genau, stimmt.

YEAH. Ich sehe grad mit einer unglaublichen Begeisterung, dass mir dieser geniale Code ja sogar alle anderen Spalten der Tabelle die ich nicht umforme (serialnumber und article code), korrekt mitnimmt und dabei dupliziert. Genial

Jetzt muss ich nur noch irgendwie bestimmte Strings wie “UNLOCKS_ADD” und “INCREASE_UNLOCKS” aus der neuen Spalte annotation auslesen und diese in einer separaten Spalte anzeigen lassen.

Aber das was bis jetzt das Ergebnis ist ist schon der HAMMER bzw schlichtweg genial, da es das Chaos fast komplett beseitigt und alles richtig zuordnet :slight_smile: