首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

【100分】怎么统计一个词在记录中所有字段的出现次数,并按次数排序,效率高一点的

2012-01-20 
【100分】如何统计一个词在记录中所有字段的出现次数,并按次数排序,效率高一点的有点像词频统计,就是想统计

【100分】如何统计一个词在记录中所有字段的出现次数,并按次数排序,效率高一点的
有点像词频统计,就是想统计某个词在记录中各个字段出现的次数,实在不行在特定的几个字段里出现次数也可以,比如content字段里内容是“汽车投诉的概率势必提高。加上目前,汽车三包规定尚未出台,处理起来缺了依据,就更加难上加难了”我现在要找出“汽车”出现的次数(2次),然后能够按照这个次数来排序,最好能效率高一些的,大概一个表里有上千条数据。谢谢大家,100如果不够,开贴再送!!!

[解决办法]

SQL code
得到一个字符串在另一个字符串中出现的次数.sqlif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_getcharcount]') and xtype in (N'FN', N'IF', N'TF'))drop function [dbo].[f_getcharcount]GO--得到一个字符串在另一个字符串中出现的次数create function f_getcharcount(@str varchar(8000),@chr varchar(20)) returns intasbegindeclare @re int,@i intselect @re=0,@i=charindex(@chr,@str)+1while @i>1    select @re=@re+1        ,@str=substring(@str,@i,8000)        ,@i=charindex(@chr,@str)+1return(@re)endgo--调用示例select dbo.f_getcharcount('aadddbbbbad','ad')
[解决办法]
SQL code
declare @content varchar(2000)set @content='汽车投诉的概率势必提高。加上目前,汽车三包规定尚未出台,处理起来缺了依据,就更加难上加难了'select  len(@content)-len(replace(@content,'汽车',' '))  as  次数/*次数------2*/
[解决办法]
探讨
SQL codedeclare @content varchar(2000)
set @content='汽车投诉的概率势必提高。加上目前,汽车三包规定尚未出台,处理起来缺了依据,就更加难上加难了'

select len(@content)-len(replace(@content,'汽车',' ')) as 次数


/*
次数
------
2
*/

热点排行