t-sql:计算 varchar 列中单词的出现次数

t-sql: count occurrences of word in varchar column(t-sql:计算 varchar 列中单词的出现次数)
本文介绍了t-sql:计算 varchar 列中单词的出现次数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我想使用 ContainsTable 获取嵌入在名为 description 的 t-sql nvarchar 列中的单个单词的计数.如果我提供红色"或绿色"的标准,我怎么知道哪个真正匹配?简而言之,我正在尝试进行字数统计,并且正在寻找最佳方法.

I want to use ContainsTable to get counts on individual words embedded in a t-sql nvarchar column called description. If I provide the criteria of Red Or Green, how can I tell which one actually matched off? In short, i am trying to do word counts and am looking for the best approach.

提前致谢

推荐答案

给你:

drop function dbo.CountOccurrencesOfWord
go

create function dbo.CountOccurrencesOfWord(
    @text varchar(max),
    @word varchar(8000)
)
returns int
as 
begin 
    declare 
        @index int = charindex(@word, @text, 1),
        @len int = len(@word),
        @count int = 0
    while @index > 0  begin             
        set @count = @count + 1
        set @index = charindex(@word, @text, @index + @len)
    end
    return @count
end

GO

if object_id('tempdb..#example') is not null
    drop table #example
create table #example(
    description nvarchar(4000) not null
)

insert into #example select 'red yellow green red white blue red redred red green red'
insert into #example select 'red yellow green red'
insert into #example select 'orange grey green'
insert into #example select ''
insert into #example select 'magenta aqua cyan'

select dbo.CountOccurrencesOfWord(description, 'red'), description
from #example

注意事项 - 这种逻辑在 t-sql 中可能非常昂贵.

word of caution- this kind of logic can be quite costly in t-sql.

这篇关于t-sql:计算 varchar 列中单词的出现次数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Query with t(n) and multiple cross joins(使用 t(n) 和多个交叉连接进行查询)
Unpacking a binary string with TSQL(使用 TSQL 解包二进制字符串)
Max rows in SQL table where PK is INT 32 when seed starts at max negative value?(当种子以最大负值开始时,SQL 表中的最大行数其中 PK 为 INT 32?)
Inner Join and Group By in SQL with out an aggregate function.(SQL 中的内部连接和分组依据,没有聚合函数.)
Add a default constraint to an existing field with values(向具有值的现有字段添加默认约束)
SQL remove from running total(SQL 从运行总数中删除)