Ich fand einige verwandte Beispiele hier auf SO, aber nicht eine, die für diesen Fall speziell. Hier gehts:Parsen einer SQL-Zeichenfolge für Integer-Werte mit mehreren Delimitern
Ich muss SQL verwenden, um Daten zu analysieren, die aus einer flachen Datei stammen, die durch Pipe getrennt ist. Eines der Felder ist wie folgt unterformatiert. Mein Endzustand ist, die ganzen Zahlen innerhalb des Feldes zu summieren, aber meine Frage hier ist, Wege zu sehen, einen SQL SELECT zu verwenden, um JUST die ganzen Zahlen zu analysieren/zu extrahieren. Das Muster der Unterformatierung wird immer dort sein, wo den gewünschten Ganzzahlen eine Tilde (~) vorangestellt wird und ein Stern (*) folgt. Die Anzahl der Unterfelder kann auch variieren (mein Beispiel hat 5, aber es könnte mehr oder weniger). Der 4-Zeichen-TAG-Name spielt keine Rolle.
So, hier ist ein Beispiel:
|GADS~55.0*BILK~0.0*BOBB~81.0*HETT~32.0*IGGR~51.0|
Aus diesem Beispiel alles, was ich für die Verarbeitung wollen würde, ist die endgültige Anzahl von 219. Auch hier kann ich auf der Summe Teil als weiteren Schritt arbeiten; nur daran interessiert, die Zahlen zu bekommen.
Ich weiß, wie man mit UNIX-Tools (dh AWK, sed, etc.) recht einfach umgehen kann, aber nicht in SQL. Irgendwelche Vorschläge helfen! Vielen Dank!
Was ist mit den ganzen Zahlen, die in anderen Rohrabschnitten erscheinen? Müssen sie auch summiert werden, zusammen oder getrennt? – trincot
Danke Trincot. Integer (eigentlich alle Werte) aus anderen Rohrabschnitten benötigen keine Logik oder Arithmetik für diese Änderung. Dies ist das einzige durch Pipe getrennte Feld, das dies benötigt. – sirabhorn
Ich bekomme immer noch nicht, was mit einem Feld passieren soll, das diesen Wert hat '| GADS ~ 55.0 * BILK ~ 0.0 | BOBB ~ 81.0 * HETT ~ 32.0 | IGGR ~ 51.0 |' Sollte sich in eine oder mehrere Zahlen verwandeln? Welche? – trincot