ORDER BY在SQL Server中找到WHERE LIKE子句的位置?
我有以下SQL Server查询:ORDER BY在SQL Server中找到WHERE LIKE子句的位置?,sql,sql-server,sorting,Sql,Sql Server,Sorting,我有以下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, Gloucester
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
是否有任何方法可以根据找到的相似短语的位置对结果进行排序?例如,如果有人正在键入“moreto”,那么他们很可能是从开头而不是中间键入单词
此外,在任何人提到之前,我确实意识到我可以通过删除第一个通配符(%)来实现这些结果,但我只是想知道是否有其他方法可以做到这一点,而不需要太多
非常感谢。这应该可以解决问题
order by PATINDEX ( '%moreto%' , area )
这应该可以做到
order by PATINDEX ( '%moreto%' , area )