PDA

View Full Version : Zeichen "auschneiden"



heynem
11-02-03, 13:43
Hallo alle zusammen,
hat evtl. jemand eine Idee..... Ich möchte gerne in einer Tabelle bestimmte Texte ausschneiden welche ich woanders benötige, Die Länge ist immer verschieden, deswegen dürfte ich mit dem normalen "substr" nicht sehr weit kommen. Der einzige Anhaltspunkt, den ich habe ist, daß der relevante Bereich immer zwischen Punkt "." (ohne Leerzeichen) und dem Komma "," (ohne Leerzeichen) steht.Das sollte doch mit SQL irgentwie machbar sein, oder ?? Ich habe nur leider keine Idee :-((

Besten Dank im voraus
Michael

DEVJO
11-02-03, 14:13
Ich würde es mit ILE RPG probieren, und zwar mit der BIF %SCAN und %SUBST.
Mit Scan kann Du nach dem . und dem , suchen
und dir damit die genaue Position ausgeben lassen und dann mit den Zahlen, kannst Du dir dann mittels Subst den String rausholen.

Fuerchau
11-02-03, 14:15
Schau mal im SQL-Handbuch nach der Funktion POSSTR.
POSSTR liefert die relative Position einer Zeichenkette in einer anderen Zeichenkette.
Das ganze wird natürlich etwas komplizierter, wenn die Zeichen NICHT vorkommen, dies sollte also in einer WHERE-Klausel bereits geprüft werden.

B.Hauser
11-02-03, 15:19
Mit SQL ist das nicht ganz einfach, aber folgendes Beispiel sollte funktionnieren:

SELECT Substr(Field, posstr(Field, '.')+1, posstr(Field, ',')-posstr(Field, '.')-1)
FROM MyLib/MyFile where posstr(Field, '.') <> 0

Birgitta

heynem
11-02-03, 15:28
Hallo Brigitta,
das war exact das was ich gesucht habe. 1000 Dank, Michael


<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von B.Hauser:
Mit SQL ist das nicht ganz einfach, aber folgendes Beispiel sollte funktionnieren:

SELECT Substr(Field, posstr(Field, '.')+1, posstr(Field, ',')-posstr(Field, '.')-1)
FROM MyLib/MyFile where posstr(Field, '.') &lt;&gt; 0

Birgitta [/quote]