[SQL] Zelleninhalt splitten



  • Hallo zusammen. Ich bin gerade dabei, aus einer Uralt-DB relevate Informationen zu filtern und in eine neue zu speichern.
    Mein Problem ist folgendes: In einer Spalte einer Tabelle stehen eine Art Auftragsnummer und der Typ der Korrespondenz in einem String, durch Space getrennt. Also z.B. "08782772121 RECHNUNG" oder "97467146811 AUFTRAG".
    Gibt es eine Möglichkeit dies in 2 Spalten aufzusplitten?



  • Hi, mit welchen Datenbanken arbeitest du?



  • Hi,

    wenn nur dieses eine trennende Leerzeichen im Feldinhalt vorhanden ist, kannst du dessen Position mittels charindex(...) ermitteln und mit left(...) und right(...) die entsprechenden Substrings extrahieren bzw. mittels update in eigene Felder schreiben.



  • AndRo67 schrieb:

    mittels charindex(...) ermitteln und mit left(...) und right(...)

    Kannst du mal bitte eine Beispielabfrage zeigen? Ich kann das nicht ganz nachvollziehen..

    Tanzfreak schrieb:

    Hi, mit welchen Datenbanken arbeitest du?

    Zielsystem ist noch nicht ganz klar, wahrscheinlich Firebird. Das Original stammt von ner guten alten AS400 Maschine 🙄 "Zwischenstation" bei der Konmvertierung ist ne alte Access-Variante ...



  • Also so ungefähr:

    update [tabelle] set [linkerteil] = left([quellfeld], charindex([quellfeld],' '))
    update [tabelle] set [rechterteil] = right([quellfeld], charindex([quellfeld],' ')+1, len([quellfeld]) - charindex([quellfeld],' ')))
    

    Eventuell musst du die genauen Trennpositionen noch +/- 1 verschieben, ich probier das auch immer nur aus...



  • Danke! Werd das dann mal testen...


Anmelden zum Antworten