日期:2014-05-18  浏览次数:20783 次

多个关键字的匹配度查询问题,求SQL语句
搜索的时候,如果关键字是2个以上的话,怎么样才能按匹配程度来排序呢?
就是说符合的关键字越多,显示就越靠前~~
我想了个笨办法,不知道行不行,就是计数,符合1次就加1,最后按计数的大小排序,是不是太笨了……
期待高手解答,谢谢了~

------解决方案--------------------
select * from t where parindex('%中国%',Name)>0 order by rindex('%中国%',Name) asc
------解决方案--------------------
SQL code
declare @a table(a varchar(100))
insert @a select '中华人民共和国'
insert @a select '中华人民'
insert @a select '中国'

declare @key table(a varchar(100))
insert @key select '中'
insert @key select '华'
insert @key select '民'
insert @key select '国'

select a from
(select a.a a,sum(case when charindex(b.a,a.a)>0  then 1 else 0 end)  x from @a a,@key b group by a.a)aa
order by x desc