首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询以统计字数SQLite 3

查询以统计字数SQLite 3
EN

Stack Overflow用户
提问于 2010-07-21 03:50:48
回答 3查看 6.7K关注 0票数 11

有没有一种方法可以计算文本字符串中的单词?

我使用的是SQLite 3,我正在尝试编写一个查询,该查询接受一串长文本字符串,并计算每个字符串中的单词数量。

我还想忽略html标签(或插入符号之间的任何内容),如段落标签、分隔符等。

因此,当我运行一个从适当的列中选择文本的查询时,我得到了一个包含一些html标记的长长的文本输出,我只想计算一下单词。

我如何写一个查询来做这件事呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-21 04:05:31

据我所知,在SQL lite3中无法直接统计字符串中的字数。(我比较熟悉mysql和ms sql)

您可以使用Length和Replace作为变通方法

代码语言:javascript
复制
 SELECT length(@String) - length(replace(@String, ' ', '')) + 1
票数 22
EN

Stack Overflow用户

发布于 2015-02-19 04:11:12

对于空白列,前面的答案是不正确的。您需要将case/when/then语句添加到select:

代码语言:javascript
复制
SELECT someStr,
  CASE WHEN length(someStr) >= 1
  THEN
    (length(someStr) - length(replace(someStr), ' ', '')) + 1
  ELSE
    (length(someStr) - length(replace(someStr), ' ', ''))
  END as NumOfWords
FROM someTable;

已编辑:如果该列有0个空格,但其中有一个单词,它将错误地报告0。已更改条件以允许它。

来源:An Excel Trick I used to do the same thing

票数 0
EN

Stack Overflow用户

发布于 2017-05-01 00:24:47

来自@Ziferius的答案有一个小的语法错误,下面的答案是我自己测试的一个有效的答案。

代码语言:javascript
复制
SELECT someStr,   CASE WHEN length(someStr) >= 1   
THEN 
    (length(someStr) - length(replace(someStr, ' ', ''))) + 1   
ELSE 
    (length(someStr) - length(replace(someStr, ' ', '')))   
END as NumOfWords FROM someTable;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3293790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档