Methode 1
Die erste Methode besteht darin, zusätzliche Leerzeichen zwischen Wörtern durch eine ungewöhnliche Symbolkombination als temporären Marker zu ersetzen. Anschließend können Sie die temporären Markierungssymbole mithilfe der Ersetzungsfunktion anstelle einer Schleife ersetzen.
Hier ist ein Codebeispiel, das Text innerhalb einer String-Variablen ersetzt.
DECLARE @testString AS VARCHAR(256) = ' Test text with random* spacing. Please normalize this spacing!';
SELECT REPLACE(REPLACE(REPLACE(@testString, ' ', '*^'), '^*', ''), '*^', ' ');
Ausführungszeittest Nr. 1: In zehn Durchläufen dieser Ersetzungsmethode betrug die durchschnittliche Wartezeit bei Serverantworten 1,7 Millisekunden und die Gesamtausführungszeit 4,6 Millisekunden. Ausführungszeittest Nr. 2: Die durchschnittliche Wartezeit bei Serverantworten betrug 1,7 Millisekunden und die Gesamtausführungszeit 3,7 Millisekunden.
Methode 2
Die zweite Methode ist nicht ganz so elegant wie die erste, erledigt aber auch die Arbeit. Diese Methode verschachtelt vier (oder optional mehrere) Ersetzungsanweisungen, die zwei Leerzeichen durch ein Leerzeichen ersetzen.
DECLARE @testString AS VARCHAR(256) = ' Test text with random* spacing. Please normalize this spacing!';
SELECT REPLACE(REPLACE(REPLACE(REPLACE(@testString,' ',' '),' ',' '),' ',' '),' ',' ')
Ausführungszeittest Nr. 1: In zehn Durchläufen dieser Ersetzungsmethode betrug die durchschnittliche Wartezeit bei Serverantworten 1,9 Millisekunden und die Gesamtausführungszeit 3,8 Millisekunden. Ausführungszeittest Nr. 2: Die durchschnittliche Wartezeit bei Serverantworten betrug 1,8 Millisekunden und die Gesamtausführungszeit 4,8 Millisekunden.
Methode 3
Die dritte Methode zum Ersetzen zusätzlicher Leerzeichen zwischen Wörtern besteht in der Verwendung einer einfachen Schleife. Sie können zusätzliche Leerzeichen in einer while-Schleife überprüfen und dann die Ersetzungsfunktion verwenden, um die zusätzlichen Leerzeichen bei jeder Iteration der Schleife zu reduzieren.
DECLARE @testString AS VARCHAR(256) = ' Test text with random* spacing. Please normalize this spacing!';
WHILE CHARINDEX(' ',@testString) > 0
SET @testString = REPLACE(@testString, ' ', ' ')
SELECT @testString
Ausführungszeittest Nr. 1: In zehn Durchläufen dieser Ersetzungsmethode betrug die durchschnittliche Wartezeit bei Serverantworten 1,8 Millisekunden und die Gesamtausführungszeit 3,4 Millisekunden. Ausführungszeittest Nr. 2: Die durchschnittliche Wartezeit bei Serverantworten betrug 1,9 Millisekunden und die Gesamtausführungszeit betrug 2,8 Millisekunden.