在搜索结果之后排序SQL查询

在搜索结果之后排序SQL查询,sql,sql-server,sorting,tsql,search,Sql,Sql Server,Sorting,Tsql,Search,我有一个包含列全名的表,我正在进行搜索并获得结果。我需要按搜索位置(搜索词)对这些列进行排序 身份证件 全名 1. 扎伊德·赛义德·阿拉布里 2. 斯里姆·萨利姆·阿拉赫梅迪说 3. 萨利姆·扎伊德·艾哈迈德·阿尔扎伊德 4. 艾哈迈德·赛义德·扎伊德·阿尔萨利米 像这样的东西可能适合你: select * from table where full_name like N'%Ahmed%' order by charindex(N'Ahmed', full_name) charindex函数

我有一个包含列全名的表,我正在进行搜索并获得结果。我需要按搜索位置(搜索词)对这些列进行排序

身份证件 全名 1. 扎伊德·赛义德·阿拉布里 2. 斯里姆·萨利姆·阿拉赫梅迪说 3. 萨利姆·扎伊德·艾哈迈德·阿尔扎伊德 4. 艾哈迈德·赛义德·扎伊德·阿尔萨利米
像这样的东西可能适合你:

select *
from table
where full_name like N'%Ahmed%'
order by charindex(N'Ahmed', full_name)

charindex
函数返回搜索与字符串匹配的字符号。

既然已将SQL Server标记为数据库,请尝试以下操作:

select *
from table
where full_name like N'%Ahmed%'
order by charindex('Ahmed',full_name,1)

我认为,如果您使用的是SQL server,那么您可以通过和使用CHARIndex使用条件顺序 如下

SELECT    EnglishName   
FROM            Employees
where EnglishName like N'%Ahmed%' 
order by charindex(N'Ahmed',EnglishName,1)

你的DBMS是什么?顺便问一句,你是指字符位置还是单词位置?MSSQL-单词位置ty:)它可以工作,多亏了很多当1=1时,
的case有什么意义?case=trueAhmed的条件请删除该条件,它也可以工作,但位置不正确,谢谢你的帮助answer@NicedMoral这个答案有什么问题?@Charlieface在您更改u replay之前,它不起作用,因为针对sql server的samir解决方案已更改
SELECT    EnglishName   
FROM            Employees
where EnglishName like N'%Ahmed%' 
order by charindex(N'Ahmed',EnglishName,1)