0

我有以下 SQL Server 查询:

SELECT area 
FROM places 
WHERE REPLACE(area,'-',' ') LIKE REPLACE('%moreto%','-',' ')

这将返回以下结果:

Moreton Pinkney, Northamptonshire
South Moreton, Oxfordshire
North Moreton, Oxfordshire
Moreton, Merseyside
Moreton-in-Marsh, Gloucestershire
Moreton Jeffries, Herefordshire
Moreton on Lugg, Herefordshire
Maids' Moreton, Buckinghamshire
Moreton Corbet, Shropshire
Moretonhampstead, Devon

有什么方法可以根据找到的 LIKE 短语的位置对结果进行排序?例如,如果某人正在输入“moreto”,那么他们很可能是从开头而不是中间输入单词。

此外,在任何人提到之前 - 我确实意识到我可以通过删除第一个通配符 (%) 来实现这些结果,但只是想知道是否还有另一种不需要的方法。

非常感谢。

4

1 回答 1

3

这应该可以解决问题

order by PATINDEX ( '%moreto%' , area )

http://msdn.microsoft.com/en-us/library/ms188395.aspx

于 2012-07-04T17:20:01.677 回答