--生成测试数据
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
本文提供了一个使用SQL进行复杂字符串匹配的示例,演示了如何根据特定条件筛选记录,并为每条记录计算一个匹配量来排序结果。
1223

被折叠的 条评论
为什么被折叠?



