Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ORDER BY在SQL Server中找到WHERE LIKE子句的位置?_Sql_Sql Server_Sorting - Fatal编程技术网

ORDER BY在SQL Server中找到WHERE LIKE子句的位置?

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

我有以下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
是否有任何方法可以根据找到的相似短语的位置对结果进行排序?例如,如果有人正在键入“moreto”,那么他们很可能是从开头而不是中间键入单词

此外,在任何人提到之前,我确实意识到我可以通过删除第一个通配符(%)来实现这些结果,但我只是想知道是否有其他方法可以做到这一点,而不需要太多


非常感谢。

这应该可以解决问题

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

这应该可以做到

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