Phương pháp # 1
Phương pháp đầu tiên là để thay thế thêm dấu cách giữa các từ với một sự kết hợp biểu tượng phổ biến như một dấu hiệu tạm thời. Sau đó, bạn có thể thay thế các ký hiệu điểm đánh dấu tạm thời bằng cách sử dụng hàm thay thế thay vì một vòng lặp.
Dưới đây là ví dụ về mã thay thế văn bản trong 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 hiện # 1: Trong thời gian chờ của máy chủ là 1,7 mili giây và tổng thời gian thực hiện là 4,6 mili giây. Kiểm tra thời gian thực hiện # 2: Thời gian chờ trung bình trên các thư trả lời của máy chủ là 1,7 mili giây và tổng thời gian thực hiện 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ư trước, nhưng cũng hoàn thành công việc. Phương thức này hoạt động bằng cách lồng bốn (hoặc tùy chọn thêm) thay thế câu lệnh thay thế hai khoảng trắng bằng một khoảng trắng.
DECLARE @testString AS VARCHAR(256) = ' Test text with random* spacing. Please normalize this spacing!';
SELECT REPLACE(REPLACE(REPLACE(REPLACE(@testString,' ',' '),' ',' '),' ',' '),' ',' ')
Thời gian thực hiện thử nghiệm # 1: Trong mười lần chạy của phương pháp thay thế này, thời gian chờ trung bình trên máy chủ trả lời là 1,9 mili giây và tổng thời gian thực hiện là 3,8 mili giây. Kiểm tra thời gian thực hiện # 2: Thời gian chờ trung bình trên các thư trả lời của máy chủ là 1,8 mili giây và tổng thời gian thực hiện là 4,8 mili giây.
Phương pháp # 3
Phương pháp thứ ba thay thế khoảng trắng giữa các từ là sử dụng vòng lặp đơn giản. Bạn có thể thực hiện kiểm tra các khoảng trống thừa trong một 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 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
Thời gian thực hiện kiểm tra # 1: Trong mười lần chạy của phương pháp thay thế này, thời gian chờ trung bình trên máy chủ trả lời là 1,8 mili giây và tổng thời gian thực hiện là 3,4 mili giây. Kiểm tra thời gian thực hiện # 2: Thời gian chờ trung bình trên trả lời của máy chủ là 1,9 mili giây và tổng thời gian thực hiện là 2,8 mili giây.
Bạn có thể làm điều này với một regex thay thế –
trùng lặp có thể xảy ra [phương pháp SQL để thay thế chỗ trống lặp đi lặp lại với khoảng trống duy nhất] (http://stackoverflow.com/questions/2182877/sql-method-to-replace-repeating-khoảng trống-với-đơn-khoảng trống) – bummi