Teil von einem String entfernen

winscheil

Aktiver Benutzer
Beiträge
25
Hallo,

ich habe in einer MSSQL Tabelle eine Spalte mit folgendem Inhalt:
1.1
1.1.1
1.1.1.10
1.1.1.10.1
1.1.1.10.2
....
1.3.50.121.7.203.10
1.4.80.150.1201.301.1
...

Und ich bräuchte den Inhalt dieser Spalte ohne den letzen Punkt und den darauffolgenden Zeichen.
Also so:
1
1.1
1.1.1
1.1.1.10
1.1.1.10
...
1.3.50.121.7.203
1.4.80.150.1201.301
...

Die Anzahl der Zeichen zwischen den Punkten und auch am Ende können unterschiedlich lang sein.
Es kann auch bis zu 11 Punkte geben.

Könnt Ihr mir bei meinem Problem weiterhelfen?
 
Werbung:
replace() ginge zwar, ist aber aufwendiger.
Code:
DECLARE   @i VARCHAR(100)
SET     @i = '1.4.80.150.1201.301'

SELECT   left(@i,len(@i)-charindex('.',reverse(@i)))
@i kannst du durch die Spalte ersetzen. Liefert die Spalte allerdings nicht immer mindestens einen Punkt kommt eine Fehlermeldung, das müsste man dann noch abfangen.
 
@ukulele: da magst du recht haben.... wenn er das Script dann nicht alle 5 Minuten laufen lässt merkt man es kaum ;-) Ich fand REPLACE an der stelle treffender da es auch von der Syntax usw. leichter ist als mit LEFT+CHARINDEX usw. da ich denke das der Threadersteller nicht so die Routine hat :)
 
Er möchte ja nicht alle Punkte entfernen sondern den letzten Punkt und alle darauf folgenden Zeichen. Das geht bestimmt mit replace() aber nicht nur mit replace(), das wird deutlich komplizierter :)
 
Werbung:
Zurück
Oben