--测试通过
if object_id('testft') is not null drop table testft
go
select 'bbbshbcdefg' as username
into testft
union select 'aaashbcshbc'
union select 'defgshhhshsh'
declare @keyword varchar(50)
set @keyword = 'sh'
select *
from testft
where username like '%' + @keyword + '%'
order by len(username) - len(replace(username, @keyword, '')) desc
/*
username
------------
defgshhhshsh
aaashbcshbc
bbbshbcdefg
*/
drop table testft
declare @keyword varchar(50)
set @keyword = 'abc'
select *
from testft
where username like '%' + @keyword + '%'
order by len(username) - len(replace(username, @keyword, '')) desc
declare @keyword varchar(50)
set @keyword = 'sh'
select *
from testft
where contains(username, @keyword)
--试试这个
order by len(username) - len(replace(username, @keyword, '')) desc