String ausschneiden bei Baumpfad

Bennjixxx

Neuer Benutzer
Beiträge
2
Hallo,

ich arbeite auch neu mit dem "Microsoft SQL Server Management Studio". Auch ich möchte Teile eines Strings ausschneiden und ausgeben lassen.
Am besten hier ein Bsp.:
Ich habe einen Baumpfad, der z.B. so
"Baumpfad=Anlagen->Abwasserpumpwerk->NMB AW Nord->[Ortschaft1]->AWPW - Ortschaft1, Straße 1->[weitere Objekte]" oder so
"Baumpfad=Anlagen->Kläranlage->NMB AW Süd->[Ortschaft2]->KA - Ortschaft2, Straße 2->[weitere Objekte]" aussehen kann.

Es gibt also mehrere Ebenen, deren Länge unterschiedlich ist.

Ich möchte jetzt als Ergebnis in einer Spalte die 3. Ebene ("NMB AW Nord" oder "NMB AW Süd") und in einer weiteren Spalte die 5. Ebene (z.B. "AWPW - Ortschaft1, Straße 1") des Baumpfades stehen haben. Gibt es eine Möglichkeit, ab dem 2. mal "->" bis zum 3. mal "->" für die 3. Ebene bzw. ab dem 4. mal "->" bis zum 5. mal "->" für die 5. Ebene den Baumpfad abzuschneiden?

Ich bin totaler Neuling in SQL und wäre sehr dankbar über eure Hilfe.

Ergänzung:
Durch viel Probieren konnte ich die 3. Ebene wie folgt extrahieren:
"SUBSTRING(Baumpfad, CHARINDEX('NMB AW', Baumpfad), CHARINDEX('->', Baumpfad, CHARINDEX('NMB AW', Baumpfad)) - CHARINDEX('NMB AW', Baumpfad)) AS NMB"
Das funktioniert allerdings nur, weil der Textabschnitt "NMB AW" immer vorkommen muss.
Für die 5. Ebene habe ich leider keine Idee. Als Lösungsansatz hilft evtl., dass jede Ebene immer mit der Zeichenkette "->" voneinander getrennt wird.
 
Werbung:
Werbung:
Danke für eure Hilfe. Leider habe ich es nicht geschafft, mein Problem über SQL zu lösen. Aber im Excel konnte ich meinen String per VBA so aufsplitten, wie ich es brauchte. Trotzdem Danke!
 
Zurück
Oben