--生成测试数据
declare @t table(id int,name varchar(20))
insert into @t select 1,'中国湖南长沙芙蓉区'
insert into @t select 2,'中国福建福州鼓楼区'
insert into @t select 3,'中国北京北京朝阳区'
insert into @t select 4,'中国河南郑州金水区'
--查询示例
select
*,
(case when name like '%中国%' then 1 else 0 end +
case when name like '%湖南%' then 1 else 0 end +
case when name like '%长沙%' then 1 else 0 end +
case when name like '%州%' then 1 else 0 end) as 匹配量
from
@t
where
name like '%中国%' or name like '%湖南%' or name like '%长沙%' or name like '%州%'
order by
匹配量 desc
declare @t table(id int,name varchar(20))
insert into @t select 1,'中国湖南长沙芙蓉区'
insert into @t select 2,'中国福建福州鼓楼区'
insert into @t select 3,'中国北京北京朝阳区'
insert into @t select 4,'中国河南郑州金水区'
--查询示例
select
*,
(case when name like '%中国%' then 1 else 0 end +
case when name like '%湖南%' then 1 else 0 end +
case when name like '%长沙%' then 1 else 0 end +
case when name like '%州%' then 1 else 0 end) as 匹配量
from
@t
where
name like '%中国%' or name like '%湖南%' or name like '%长沙%' or name like '%州%'
order by
匹配量 desc