Phương pháp # 1
Phương pháp đầu tiên là thay thế các khoảng trắng thừa giữa các từ bằng một tổ hợp ký hiệu không phổ biến làm điểm đánh dấu tạm thời. Sau đó, bạn có thể thay thế các ký hiệu đánh dấu tạm thời bằng cách sử dụng chức năng thay thế thay vì một vòng lặp.
Đây là một ví dụ mã thay thế văn bản trong một biến Chuỗi.
DECLARE @testString AS VARCHAR(256) = ' Test text with random* spacing. Please normalize this spacing!';
SELECT REPLACE(REPLACE(REPLACE(@testString, ' ', '*^'), '^*', ''), '*^', ' ');
Kiểm tra thời gian thực thi # 1: Trong mười lần chạy phương pháp thay thế này, thời gian chờ trung bình trên các phản hồi của máy chủ là 1,7 mili giây và tổng thời gian thực thi là 4,6 mili giây. Kiểm tra thời gian thực thi # 2: Thời gian chờ trung bình trên các câu trả lời của máy chủ là 1,7 mili giây và tổng thời gian thực thi là 3,7 mili giây.
Phương pháp # 2
Phương pháp thứ hai không hoàn toàn thanh lịch như phương pháp đầu tiên, nhưng cũng hoàn thành công việc. Phương pháp này hoạt động bằng cách lồng bốn câu lệnh thay thế (hoặc tùy chọn nhiều hơn) thay thế hai dấu cách trống bằng một dấu cách trống.
DECLARE @testString AS VARCHAR(256) = ' Test text with random* spacing. Please normalize this spacing!';
SELECT REPLACE(REPLACE(REPLACE(REPLACE(@testString,' ',' '),' ',' '),' ',' '),' ',' ')
Kiểm tra thời gian thực thi # 1: Trong mười lần chạy phương pháp thay thế này, thời gian chờ trung bình trên các phản hồi của máy chủ là 1,9 mili giây và tổng thời gian thực thi là 3,8 mili giây. Kiểm tra thời gian thực thi # 2: Thời gian chờ trung bình trên các câu trả lời của máy chủ là 1,8 mili giây và tổng thời gian thực thi là 4,8 mili giây.
Phương pháp # 3
Phương pháp thứ ba để thay thế khoảng trắng thừa giữa các từ là sử dụng một vòng lặp đơn giản. Bạn có thể kiểm tra các khoảng trắng thừa trong vòng lặp while và sau đó sử dụng hàm thay thế để giảm các khoảng trắng thừa với mỗi lần lặp lại của vòng lặp.
DECLARE @testString AS VARCHAR(256) = ' Test text with random* spacing. Please normalize this spacing!';
WHILE CHARINDEX(' ',@testString) > 0
SET @testString = REPLACE(@testString, ' ', ' ')
SELECT @testString
Kiểm tra thời gian thực thi # 1: Trong mười lần chạy phương pháp thay thế này, thời gian chờ trung bình trên các phản hồi của máy chủ là 1,8 mili giây và tổng thời gian thực thi là 3,4 mili giây. Kiểm tra thời gian thực thi # 2: Thời gian chờ trung bình trên các câu trả lời của máy chủ là 1,9 mili giây và tổng thời gian thực thi là 2,8 mili giây.