请求sql大神们帮帮我啊
现在有一张表名叫  表Article
有字段    id,title,keyword,content
现在keyword里面的数据是这样的
 "苹果,ipad,google"
"三国杀,ipad,苹果,qq"
"苹果,三国杀,qq"
"iphone,三国杀,qq"
 类似这样的数据有很多行
现在前台需要根据keyword这个关键词以","分割来检索出这些关键词,
最后出现的结果应该是“苹果,三国杀,ipad,qq,google,iphone" 这样的 并且按照出现次数最多的排在最前面
请各位大虾们帮帮我 这是要做热门关键词的检索功能  
              
------解决方案--------------------
with tb(keyword) as(
select '苹果,ipad,google' union all
select '三国杀,ipad,苹果,qq' union all
select '苹果,三国杀,qq' union all
select 'iphone,三国杀,qq' ),tc as(
select a=substring(keyword,number,CHARINDEX(',',keyword+',',number+1)-number),
b=COUNT(1) from tb,master..spt_values where type='p' 
and SUBSTRING(','+keyword,number,1)=','
group by substring(keyword,number,CHARINDEX(',',keyword+',',number+1)-number))
select a=stuff((select ','+a from tc  order by b desc for xml path('')),1,1,'')
------解决方案--------------------动态的
create table fenge (
id int identity(1,1),
name varchar(255)
)
declare @t int
set @t=select max(id) from  Article 
declare @q int
set @q=1
while @q<@t
	declare @i varchar(255)
	set @i=(select keyword from where id =@q
	if(charindex(',',@i)=0) and (len(@i))>=1 
	        begin
	        insert into fenge (name) values (@i)
	        end
	while charindex(',',@i)>0
	begin 
		declare @j int
		set @j=charindex(',',@i)
		insert into fenge (name) values (substring(@i,0,@j))
		set @i=substring(@i,@j+1,len(@i))
	        if(charindex(',',@i)=0) and (len(@i))>=1 
	        begin
	        insert into fenge (name) values (@i)
	        end
	end 
        set @q=@q+1
end
select count(*) c,name from fenge group by name order by c