t-sql:计算 varchar 列中单词的出现次数
- 作者: 呦吼5957297
- 来源: 51数据库
- 2023-02-07
问题描述
我想使用 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.
推荐阅读
热点文章
检查拆分键盘
0
带有“上一个"的工具栏和“下一个"用于键盘输入AccessoryView
0
Activity 启动时显示软键盘
0
UIWebView 键盘 - 摆脱“上一个/下一个/完成"酒吧
0
在 iOS7 中边缘滑动时,使键盘与 UIView 同步动画
0
我的 iOS 应用程序中的键盘在 iPhone 6 上太高了.如何在 XCode 中调整键盘的分辨率?
0
android:inputType="textEmailAddress";- '@' 键和 '.com' 键?
0
禁用 iPhone 中键盘的方向
0
Android 2.3 模拟器上的印地语键盘问题
0
keyDown 没有被调用
0
