Bereinigen von Textzeichenfolgen in SQL Server, wobei Buchstaben und Zahlen in SQL Server beibehalten werden
Erstellen Sie in SQL Server eine Funktion, um Textzeichenfolgen von allen Zeichen zu bereinigen, die nicht zwischen 0-9 oder AZ liegen
Überblick
Unsere Utilities-Datenbank ist voll von netten kleinen Funktionen.
Dieser wird verwendet, um Daten zu bereinigen, bevor wir sie in unsere Datenbank einfügen, indem der gesamte Text entfernt wird, der nicht zwischen '0' und 'Z' liegt, und die Textzeichenfolge durchlaufen wird, bis keine Elemente gefunden werden können, die nicht zwischen den Werten liegen .
Die Grundfunktion besteht einfach darin, jedes Zeichen des Eingabewerts zu durchlaufen und alle Zeichen zu entfernen, die nicht in den Musterindexbereich fallen.
Wenn Sie nur Zahlen benötigen, wird [^0-Z] zu [^0-9].
Alternativ für nur Text ist es [^aZ].
SQL
CREATE Function [dbo].[CleanToText](@Data VARCHAR(100))Returns VARCHAR(100)AS BEGIN DECLARE @Letter INT SET @Letter =PATINDEX('%[^0-Z]%',@Data) BEGIN WHILE @Letter>0 BEGIN SET @Data =STUFF(@Data,@Letter,1,'') SET @Letter =PATINDEX('%[^0-Z]%',@Data) END END RETURN @DataENDGOSELECT dbo.CleanToText('info@claytabase.co.uk')
Überblick
Gibt die folgende Zeichenfolge „infoclaytabasecouk“ zurück, wobei „@“ und „.“ entfernt werden.