检索,匹配度排序

--生成测试数据
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

你可能感兴趣的:(排序)