我有以下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”,则可能是他们从头开始而不是中间键入单词。
此外,在任何人提到之前 - 我确实意识到我可以通过删除第一个通配符(%)来实现这些结果,但只是想知道是否有其他方法可以在不需要的情况下执行此操作。
非常感谢。
答案 0 :(得分:3)
这应该可以解决问题
order by PATINDEX ( '%moreto%' , area )