Yöntem 1
İlk yöntem, sözcükler arasındaki fazladan boşlukları, geçici bir işaretçi olarak yaygın olmayan bir sembol kombinasyonuyla değiştirmektir. Daha sonra geçici işaret sembollerini döngü yerine değiştirme işlevini kullanarak değiştirebilirsiniz.
Burada, bir String değişkeni içindeki metni değiştiren bir kod örneği verilmiştir.
DECLARE @testString AS VARCHAR(256) = ' Test text with random* spacing. Please normalize this spacing!';
SELECT REPLACE(REPLACE(REPLACE(@testString, ' ', '*^'), '^*', ''), '*^', ' ');
Yürütme Süresi Testi # 1: Bu değiştirme yönteminin on çalıştırmasında, sunucu yanıtlarında ortalama bekleme süresi 1,7 milisaniye ve toplam yürütme süresi 4,6 milisaniye idi. Yürütme Süresi Testi # 2: Sunucu yanıtlarında ortalama bekleme süresi 1,7 milisaniye ve toplam yürütme süresi 3,7 milisaniye idi.
Yöntem 2
İkinci yöntem, birincisi kadar zarif değil, aynı zamanda işi de yaptırıyor. Bu yöntem, iki boş alanı bir boşlukla değiştiren dört (veya isteğe bağlı olarak daha fazla) deyimi iç içe yerleştirerek çalışır.
DECLARE @testString AS VARCHAR(256) = ' Test text with random* spacing. Please normalize this spacing!';
SELECT REPLACE(REPLACE(REPLACE(REPLACE(@testString,' ',' '),' ',' '),' ',' '),' ',' ')
Yürütme Süresi Testi # 1: Bu değiştirme yönteminin on çalıştırmasında, sunucu yanıtlarında ortalama bekleme süresi 1,9 milisaniye ve toplam yürütme süresi 3,8 milisaniye idi. Yürütme Süresi Testi # 2: Sunucu yanıtlarında ortalama bekleme süresi 1,8 milisaniye ve toplam yürütme süresi 4,8 milisaniye idi.
Yöntem 3
Kelimeler arasındaki fazladan boşlukları değiştirmenin üçüncü yöntemi, basit bir döngü kullanmaktır. Bir while döngüsündeki fazladan boşlukları kontrol edebilir ve ardından döngünün her yinelemesinde fazladan boşlukları azaltmak için değiştirme işlevini kullanabilirsiniz.
DECLARE @testString AS VARCHAR(256) = ' Test text with random* spacing. Please normalize this spacing!';
WHILE CHARINDEX(' ',@testString) > 0
SET @testString = REPLACE(@testString, ' ', ' ')
SELECT @testString
Yürütme Süresi Testi # 1: Bu değiştirme yönteminin on çalıştırmasında, sunucu yanıtlarında ortalama bekleme süresi 1,8 milisaniye ve toplam yürütme süresi 3,4 milisaniye idi. Yürütme Süresi Testi # 2: Sunucu yanıtlarında ortalama bekleme süresi 1,9 milisaniye ve toplam yürütme süresi 2,8 milisaniye idi.