noget lignende
Select * from TableName where Name Like 'Spa%'
ORDER BY case when soundex(name) = soundex('Spa') then '1' else soundex(name) end
burde virke ok.
faktisk vil dette fungere bedre
Select * from TableName where Name Like 'Spa%'
ORDER BY DIFFERENCE(name, 'Spa') desc;
FWIW lavede jeg nogle hurtige tests, og hvis 'Navn' er i et IKKE-KLUSTERET INDEKS, vil SQL bruge indekset og ikke foretage en tabelscanning. Ligeledes ser LIKE ud til at bruge færre ressourcer end charindex (som giver mindre ønskværdige resultater). Testet på sql 2000.