Strip nicht-numerische Zeichen aus einem string
Ich bin derzeit dabei ein Daten-Konvertierungs-Projekt und Strippen müssen alle alphabetischen Zeichen aus einer Zeichenfolge. Leider kann ich nicht erstellen oder eine Funktion verwenden, wie wir nicht selbst die Quelle-Maschine machen die Methoden die ich gefunden habe, von der Suche nach früheren posts unbrauchbar.
Was wäre der beste Weg, dies zu tun in einer select-Anweisung? Geschwindigkeit ist nicht zu viel von einem Problem, da dies nur ausgeführt werden, über 30.000 Datensätze oder so und ist ein einmalige Anweisung.
InformationsquelleAutor Michael A | 2012-09-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
RichardTheKiwi das Skript in eine Funktion für den Einsatz in wählt ohne cross apply
auch Hinzugefügt dot weil in meinem Fall nutze ich es für Doppel-und money-Werte in varchar-Feld
Dank RichardTheKiwi +1
InformationsquelleAutor Pierre
Können Sie dies tun, in einer einzigen Anweisung. Du bist nicht wirklich in die Schaffung einer Erklärung mit 200+ Ersetzt werden?!
Arbeiten SQL Fiddle zeigt diese Abfrage mit Beispiel-Daten
Repliziert unten für die Nachwelt:
Ergebnisse
Du hast Recht. Ich hatte gerade dieses Muster, das ich verwendet, bevor Sie für die Reinigung bestimmte Charakter-Gruppen (unterschiedliche WHERE-Klausel), so dass ich dachte, ich würde Sie wiederverwenden.
+1 für wird Awesome! Sie haben das beste Skript weit, getestet über 20 Skripte nun Alle anderen entweder nicht unterstützt SQL-2005-standards oder Super langsam.
InformationsquelleAutor RichardTheKiwi
CTE kommt hier nach HILFE.
Ausgabe:
InformationsquelleAutor ClearLogic
Gut, wenn Sie wirklich nicht verwenden können, eine Funktion, ich nehme an, Sie könnten so etwas tun:
Natürlich wäre es viel hässlicher als das, da ich nur mit den ersten drei Buchstaben, aber sollte es geben, die Idee.
Ein T-SQL-Funktion wäre nicht alles viel schöner, sieht einfach besser aus in der Abfrage. Jetzt CLR, auf der anderen Seite, lassen würden Sie tun, diese Art der Sache viel aufgeräumter mit RegEx.
Ich Stimme völlig - Zeitkritische Projekt 🙂
Ich glaube, eine knappe TSQL-Lösung ist immer noch möglich..., Wenn exotische Zeichen in der Zeichenfolge oder unsicher sind, diese Antwort müsste
REPLACE(..,Char(244),'')
etcInformationsquelleAutor Aaron Bertrand