[MSSQL]用SQL语句求某文章中出现关键词的个数--【叶子】
2012-05-22 02:24
260 查看
一、介绍
最近csdn论坛有人问我这样一个问题,说有一篇文章存在数据库中,然后有三个关键词,说是存取文章信息的时候,返回关键词的个数。故有此文。以供大家参考。
二、sql语句
DECLARE @article
varchar(4000),
@keyword_One varchar(300),
@keyword_Two varchar(300),
@keyword_Three varchar(300)
--文章内容
SET @article
='2008年普通高校招生全国统一考试将于月、日举行,山东、上海、江苏、广东、海南等省市因考试科目设置不同,考试时间延长到日结束。四川省灾区的六市州个县(市、区)和甘肃省灾区的两市州的个县(市、区)延期举行高考,延期高考的时间将在正常高考结束后及时向社会公布。今年高考是在全国人民万众一心抗震救灾当中进行的,切实做好今年高考有关工作具有特殊意义。国务院领导高度重视,多次指示要求有关部门密切配合,通力合作,确保今年高考万无一失。教育部、公安部等部委和各地相关部门均采取了一系列措施,进一步加强了今年高考的各项具体工作。
这些措施包括一是采取严厉措施维护考风考纪,严厉打击无线设备考试作弊。为了维护良好的考风考纪和考试公正,今年各地继续组织考生签定“诚信高考协议书”,并开展以“诚实守信”为主题的教育活动,同时将加大对作弊、替考等违规行为的处罚力度:对在今年高考中有严重违规行为(如利用通讯工具作弊、替考等)的考生,将取消其当年全国统考各科成绩,同时下一年度不得报名参加全国统考;高中在校非应届毕业生参加高考,不仅取消其当年各科成绩还将给予其应届毕业当年不得报名参加全国统考的处理;在校大学生参与替考,取消其当年全国统考各科成绩,并由其所在高校按照普通高校学生管理规定严肃处理,情节严重的给予开除学籍处分;对虚报、隐瞒或伪造、涂改有关材料及其他欺诈手段,或者因招生工作人员或其他人员的徇私舞弊行为取得考试资格或录取资格的考生,取消其当年的考试资格或录取资格。
'
SET @keyword_One
='考试'
SET @keyword_Two
='考纪'
SET @keyword_Three='考风'
--查看关键词的个数
select
( LEN( @article)
- LEN(
replace( @article, @keyword_One,'')
) )
/ LEN( @keyword_One)
AS 考试出现的次数,
( LEN( @article)
- LEN(
replace( @article, @keyword_Two,'')
) )
/ LEN( @keyword_Two)
AS 考纪出现的次数,
( LEN( @article)
- LEN(
replace( @article, @keyword_Three,'')
) )
/ LEN( @keyword_Three)
AS 考风出现的次数
/*结果
考试出现的次数考纪出现的次数考风出现的次数
----------- ----------- -----------
7 2 2
*/
三、改写成sql函数
/*求第一个字符串中第二个字符串的个数*/
create FUNCTION [dbo].[m_sqlcount]
(
@Str_One nvarchar(200),
@Str_Two nvarchar(200)
)
RETURNS
int AS
BEGIN
DECLARE @sqlcount
int
select @sqlcount=
( LEN( @Str_One)
- LEN(
replace( @Str_One, @Str_Two,'')
) )
/ LEN( @Str_Two)
RETURN @sqlcount
END
/*使用示例
SELECT dbo.[m_sqlcount]('如果这一切都是真的,我真的无法接受','真')
*/
©【叶子】http://blog.csdn.net/maco_wang原创作品,转贴请注明作者和出处,留此信息。
最近csdn论坛有人问我这样一个问题,说有一篇文章存在数据库中,然后有三个关键词,说是存取文章信息的时候,返回关键词的个数。故有此文。以供大家参考。
二、sql语句
DECLARE @article
varchar(4000),
@keyword_One varchar(300),
@keyword_Two varchar(300),
@keyword_Three varchar(300)
--文章内容
SET @article
='2008年普通高校招生全国统一考试将于月、日举行,山东、上海、江苏、广东、海南等省市因考试科目设置不同,考试时间延长到日结束。四川省灾区的六市州个县(市、区)和甘肃省灾区的两市州的个县(市、区)延期举行高考,延期高考的时间将在正常高考结束后及时向社会公布。今年高考是在全国人民万众一心抗震救灾当中进行的,切实做好今年高考有关工作具有特殊意义。国务院领导高度重视,多次指示要求有关部门密切配合,通力合作,确保今年高考万无一失。教育部、公安部等部委和各地相关部门均采取了一系列措施,进一步加强了今年高考的各项具体工作。
这些措施包括一是采取严厉措施维护考风考纪,严厉打击无线设备考试作弊。为了维护良好的考风考纪和考试公正,今年各地继续组织考生签定“诚信高考协议书”,并开展以“诚实守信”为主题的教育活动,同时将加大对作弊、替考等违规行为的处罚力度:对在今年高考中有严重违规行为(如利用通讯工具作弊、替考等)的考生,将取消其当年全国统考各科成绩,同时下一年度不得报名参加全国统考;高中在校非应届毕业生参加高考,不仅取消其当年各科成绩还将给予其应届毕业当年不得报名参加全国统考的处理;在校大学生参与替考,取消其当年全国统考各科成绩,并由其所在高校按照普通高校学生管理规定严肃处理,情节严重的给予开除学籍处分;对虚报、隐瞒或伪造、涂改有关材料及其他欺诈手段,或者因招生工作人员或其他人员的徇私舞弊行为取得考试资格或录取资格的考生,取消其当年的考试资格或录取资格。
'
SET @keyword_One
='考试'
SET @keyword_Two
='考纪'
SET @keyword_Three='考风'
--查看关键词的个数
select
( LEN( @article)
- LEN(
replace( @article, @keyword_One,'')
) )
/ LEN( @keyword_One)
AS 考试出现的次数,
( LEN( @article)
- LEN(
replace( @article, @keyword_Two,'')
) )
/ LEN( @keyword_Two)
AS 考纪出现的次数,
( LEN( @article)
- LEN(
replace( @article, @keyword_Three,'')
) )
/ LEN( @keyword_Three)
AS 考风出现的次数
/*结果
考试出现的次数考纪出现的次数考风出现的次数
----------- ----------- -----------
7 2 2
*/
三、改写成sql函数
/*求第一个字符串中第二个字符串的个数*/
create FUNCTION [dbo].[m_sqlcount]
(
@Str_One nvarchar(200),
@Str_Two nvarchar(200)
)
RETURNS
int AS
BEGIN
DECLARE @sqlcount
int
select @sqlcount=
( LEN( @Str_One)
- LEN(
replace( @Str_One, @Str_Two,'')
) )
/ LEN( @Str_Two)
RETURN @sqlcount
END
/*使用示例
SELECT dbo.[m_sqlcount]('如果这一切都是真的,我真的无法接受','真')
*/
©【叶子】http://blog.csdn.net/maco_wang原创作品,转贴请注明作者和出处,留此信息。
相关文章推荐
- [MSSQL]用SQL语句求某文章中出现关键词的个数--【叶子】
- 用SQL语句求某文章中出现关键词的个数--【叶子】
- 用SQL语句求某文章中出现关键词的个数
- SQL查询语句精华文章
- 用过SQL语句获取织梦DedeCMS每个栏目各有多少文章
- 在用dw.GetSqlSelect()获得到的Sql语句出现PBSELECT( VERSION的解决办法
- mssql 指定字段编号sql语句
- [MSSQL]在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)
- 解决在phpmyadmin中执行sql语句出现的错误:Unknown storage engine 'InnoDB'
- 一些常用的MSSQL的SQL语句供大家参考,希望对大家有所帮助
- WebShell通过SQL语句管理MSSQL
- SQL语句容易出现错误的地方-连载
- dedecms按照月份统计文章sql语句
- 黄聪:WordPress 多站点建站教程(三):主站如何调用子站的文章内容、SQL语句如何写?
- MSSQL中递归SQL查询语句实例说明-
- [置顶]一个查看MSSQL数据库中所有表信息的SQL语句
- dedecms使用sql语句调用文章静态链接地址的方法
- DEDECMS使用SQL语句批量删除文章
- 测试mssql中sql语句的执行时间