Gibt es eine klügere Möglichkeit, alle Sonderzeichen zu entfernen, anstatt eine Folge von etwa 15 verschachtelten Ersetzungsanweisungen zu haben?
Folgendes funktioniert, aber behandelt nur drei Zeichen (Und-Zeichen, Leerzeichen und Punkt).
%Vor%Erstellen Sie eine Funktion:
%Vor%Dann:
%Vor%Ergebnisse:
%Vor%Um es flexibler zu machen, könnten Sie das Muster übergeben, das Sie zulassen möchten:
%Vor%Dann:
%Vor%Ergebnisse:
%Vor%Ich war vor einigen Jahren mit diesem Problem konfrontiert, also schrieb ich eine SQL-Funktion, um den Trick zu machen. Hier ist der Originalartikel (wurde verwendet, um Text aus HTML zu extrahieren ). Ich habe seitdem die Funktion wie folgt aktualisiert:
%Vor%Ich weiß, das ist ein alter Faden, aber trotzdem, könnte für andere nützlich sein. Hier ist ein schnelles und schmutziges (was ich invers gemacht habe - Nicht-Numerik entkleidet) - mit einem rekursiven CTE. Was dieses eine für mich macht, ist, dass es eine Inline-Funktion ist - so umgeht man den fiesen RBAR-Effekt der üblichen skalaren und tabellenwertigen Funktionen. Passen Sie Ihren Filter nach Bedarf an, um beliebige Zeichenarten einzuschließen oder auszuschließen.
%Vor%Tags und Links sql-server-2008 tsql