कुछ ऐसा
Select * from TableName where Name Like 'Spa%'
ORDER BY case when soundex(name) = soundex('Spa') then '1' else soundex(name) end
ठीक काम करना चाहिए।
वास्तव में यह बेहतर काम करेगा
Select * from TableName where Name Like 'Spa%'
ORDER BY DIFFERENCE(name, 'Spa') desc;
FWIW मैंने कुछ त्वरित परीक्षण किए और यदि 'नाम' एक गैर-अनुक्रमित अनुक्रमणिका में है तो SQL अनुक्रमणिका का उपयोग करेगा और तालिका स्कैन नहीं करता है। इसके अलावा, LIKE charindex (जो कम वांछनीय परिणाम देता है) की तुलना में कम संसाधनों का उपयोग करता प्रतीत होता है। एसक्यूएल 2000 पर परीक्षण किया गया।