'SubString' auslesen

Rolf Walker

Hallo zusammen!

Ich suche eine Möglichkeit aus einem Memofeld (64000 Zeichen) einen Wert auszulesen, der nach einem 'Schlüsselwort' folgt!

Beispielsweise möchte ich in den Ressourcen (CT) im Bemerkungsfeld bestimmte Werte auslesen, die hinter z.b. dem Schlüsselwort 'INT:' stehen in der Länge X

Ich habe folgendes versucht:
SELECT substring(T0.[U_Descript],23,20) FROM [dbo].[@SWA_CT_RESS] T0

Das klappt aber nur dann gut, wenn vorhergehende Strings immer die selbe Länge haben und bei Pos. 23 beginnen. Deshalb wäre es gut, wenn man nach dem 'Schlüsselwort' suchen könnte und danach X-Zeichen ausliest!

Gibts da ne Möglichkeit?

Besten Dank!

Gruss,
Rolf

Manuel Marhold

Hi Rolf

CHARINDEX ist das, was du suchst:

http://msdn.microsoft.com/de-de/library/ms186323.aspx

Rolf Walker

Hallo Manuel!

Danke für den Input!

Habs mal überflogen.

Das liefert mir die Position zurück ab wo der gesuchte String beginnt. Ich müsste das also in zwei schritten machen, wenn ich das richtig verstehe.

1. Die Position ermitteln, wo der gesuchte String beginnt!
2. Diese Position in der SubString-Clause verwenden!

Stimmt das so?

Rolf

Manuel Marhold

Hi Rolf,

ja, aber das kannst du (ist zwar etwas unübersichtlicher, aber geht la nicht anders) direkt in deine SUBSTRING-Funktion einbauen

Rolf Walker

Manuel!

Danke für die Antwort!

Werds mal weiter verfolgen. Habe allerdings so auf die Schnelle nicht hinbekommen. Wird wirklich ziemlich unübersichtlich. Im Forum habe ich so leider auch kein Beispiel gefunden - und mein Freund Google hat leider auch nicht weitgeholfen!

Aber danke für die Starthilfe.

Vielleicht läuft dir ja mal ein Beispiel über den Weg. Dann wäre ich froh, wenn du mir das mittteils könntest.

Gruss,
Rolf

Manuel Marhold

Hi Rolf

SELECT substring(T0.[U_Descript],CHARINDEX('INT:',T0.[U_Descript]),20) FROM [dbo].[@SWA_CT_RESS] T0


das sollte gehen

Rolf Walker

Hallo Manuel!

Wow, vielen Dank!

Ich werds mal versuchen.

Gruss,
Rolf
0

Comments

0 comments

Please sign in to leave a comment.

Didn't find what you were looking for?

New post