zoiets als
Select * from TableName where Name Like 'Spa%'
ORDER BY case when soundex(name) = soundex('Spa') then '1' else soundex(name) end
zou goed moeten werken.
eigenlijk zal dit beter werken
Select * from TableName where Name Like 'Spa%'
ORDER BY DIFFERENCE(name, 'Spa') desc;
FWIW Ik heb wat snelle tests gedaan en als 'Naam' in een NIET-GECLUSTERDE INDEX staat, zal SQL de index gebruiken en geen tabelscan uitvoeren. Ook lijkt LIKE minder bronnen te gebruiken dan charindex (wat minder gewenste resultaten oplevert). Getest op sql 2000.