một cái gì đó giống như
Select * from TableName where Name Like 'Spa%'
ORDER BY case when soundex(name) = soundex('Spa') then '1' else soundex(name) end
nên hoạt động tốt.
thực sự điều này sẽ hoạt động tốt hơn
Select * from TableName where Name Like 'Spa%'
ORDER BY DIFFERENCE(name, 'Spa') desc;
FWIW Tôi đã thực hiện một số kiểm tra nhanh và nếu 'Tên' nằm trong CHỈ SỐ KHÔNG ĐƯỢC ĐIỀU CHỈNH, SQL sẽ sử dụng chỉ mục và không quét bảng. Ngoài ra, LIKE dường như sử dụng ít tài nguyên hơn charindex (trả về kết quả ít mong muốn hơn). Đã thử nghiệm trên sql 2000.