Zahl aus Memofeld auslesen

heinladmin

Neuer Benutzer
Beiträge
1
Hallo zusammen,

ich hoffe hier kann mir jmd bei meinem Problem helfen. Ich muss für eine Auswertung eine Zahl aus einem Memofeld auslesen um mit Dieser dann Berechnungen durchzuführen. Der Inhalt kann folgendermaßen aussehen:

5hvbtiprzwzg.png


Es geht immer um die Zahl die hinter "Z =" steht. Sie kann 2, 3 oder 4 stellig sein. Vor der Zahl und hinter der Zahl ist immer ein Leerzeichen. Ich bin kein allzu erfahrener SQL-Freak, wahrscheinlich ist das Ganze gar nicht so schwer.

Über eure Hilfe wäre ich euch sehr dankbar!

Beste Grüße,
heinladmin
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.582
Also in MS SQL würde ich das in etwa so probieren:
Code:
DECLARE    @a VARCHAR(1000)
 
SET        @a = 'asdfgughwigfuhwefiuhefi wefwufw\par Z = 500 / 0,5 adasdasd'
 
SELECT    right(@a,len(@a)-patindex('% Z = %',@a)-4)
SELECT    cast(left(right(@a,len(@a)-patindex('% Z = %',@a)-4),charindex(' ',right(@a,len(@a)-patindex('% Z = %',@a)-4))-1) AS INT)
Die Funktionen heißen in MySQL allerdings anders, charindex() ist z.B. substring_index(), das Prinzip ist aber das selbe. Du musst deine Spalte (in meinem Testscript die Variable @a) aufbröseln und nach möglichst eindeutigen Zeichenketten suchen die immer vorkommen um den überflüssigen Text weg zu schneiden. Auch bin ich mir nicht ganz sicher ob der Memo Datentyp (Longtext?) das so zulässt. Und, sobald du einen Eintrag ohne Z = hast läufst du möglicherweise auf einen Fehler den es abzufangen gilt.
 

akretschmer

Datenbank-Guru
Beiträge
9.423
Hallo zusammen,

ich hoffe hier kann mir jmd bei meinem Problem helfen. Ich muss für eine Auswertung eine Zahl aus einem Memofeld auslesen um mit Dieser dann Berechnungen durchzuführen. Der Inhalt kann folgendermaßen aussehen:

Sicherlich ist das machbar, vielleicht sogar in MySQL. Aber das willst Du nicht so. Du willst eine 'richtige' Tabellenstruktur haben, nicht so einen Quark. Für das, was Du da hast, etwas zu frickeln ist mehr Aufwand, als es richtig zu machen. Die anderen Zahlen hinter dem Z haben vielleicht auch noch eine Bedeutung, vielliecht auch, ob es verzinkt und/oder beschichtet ist. Morgen suchst Du vielleicht nach diesen Eigenschaften.

Auch wenn MySQL als 'Zettelkasten' verpöhnt ist, muß man es nicht so nutzen. Dir jetzt bei Deinem Problem zu helfen ist also eher kontraproduktiv, weil Du Deine kaputte Lösung damit nur zementierst.


Andreas
 

ukulele

Datenbank-Guru
Beiträge
4.582
Manchmal hat man nur leider keinen Einfluss auf die eigentliche Anwendung sondern will nur Daten aus dieser auslesen. Generell hast du natürlich recht aber für die Umstellung braucht man auch ein derartiges Script.
 
Werbung:
Oben