Benutzer SQLServer 2005 Hier ist ein Beispiel für Zeichenfolge, mit der ich festhalte: {\ rtf1 \ ansi \ ansicpg1252 \ deff0 \ deflang1033 {\ fonttbl {\ f0 \ fnil \ fcharset0 Arial abgerundet MT fett ;} {\ f1 \ fnil \ fcharset0 Arial;}} \ viewkind4 \ uc1 \ pard \ f0 \ fs54 1000 \ fs20 \ par f1 \}Mehrere Instanzen in SELECT-Anweisung ersetzen
I
jeden Schriftnamen mit 'Times New Roman' ersetzt werden sollich kann den ersten mit (textlong1 ist das Feld) erhalten:
Select Replace(textlong1,
CASE When CharIndex(';',textlong1)> 10 Then
SubString(textlong1
, Charindex('fcharset',textlong1)+10
, CharIndex(';',textlong1) - Charindex('fcharset',textlong1)-10)
Else '' End
, 'Times New Roman') From exampletable
ich den Fall ERKLÄRU bin mit nt, um den SubString vor einem Fehler zu schützen.
Da ich 'fcharset' nicht ersetze, selbst wenn ich durchschlinge, findet es nicht die zweite Instanz (bleibt immer auf der ersten stecken).
Da ich 'fcharset' nicht ersetze, kann ich die Ersetzung nicht dazu bringen, die erste korrigierte zu überspringen (Siehe Bearbeitung, die ich gemacht habe.). – JeffO
Ersetze alle "fcharset0 Times New Roman" mit "fcharset0 Arial Rounded MT Bold", bevor du beginnst. Bei jeder Schleifeniteration starten Sie die Suche mit Index 1 oder nach dem ersten Auftreten von "fcharset0 Times New Roman". – Andomar
Danke für die Hilfe. Ich habe die folgende declare @Start int --included dies in allen CHARINDEX Funktionen als Start --last Linie While-Schleife: SET @Start = Charindex (';', @ nächsten, @Start) – JeffO