关于排序

用户可以输入任意个字符char1 char2 char3 char4 ……

这种形式,字符的个数是每次都变的~~

偶想有个SQL语句,可以把字段field1,field2中有用户输入的字符(char1,char2,char3,char4……)的记录挑出来,但是需要对他们进行排序:

完全满足的,即field1,field2两个字段总共包含有char1,char2,char3,char4……N个)记录排在上面
既,field1:char1char3char2
field2:char1char4
满足上面条件

满足部分的,即field1,field2两个字段总共包含有char1,char2,char3,char4……中任意N-1个的)记录排在下面
既,field1:char1char3
field2:char1char4
满足上面条件

以此类推
---------------------------------------------------------------

--把字符串分解放进临时表
declare @a varchar(8000),@sql varchar(8000)
set @a='Socket,包监视,原理与应用'
create table #t(Tchar varchar(100))
set @sql='insert #t select '''+replace(@a,',',''' union all select ''')+''''
exec(@sql)
--表联接分组,按符合条件的记录数排序

select field1,field2 from (
select distinct field1,field2,Tchar
from Yourtable A,#t B
where charindex(Tchar,field1)>0
or charindex(Tchar,field2)>0
) A
group by field1,field2
order by count(*) desc

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus