查询计算单词SQLite 3

时间:2010-07-20 19:50:48

标签: string count sqlite

有没有办法计算文本字符串中的单词?

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

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

因此,当我运行一个查询从相应的列中选择文本时,我会得到一个带有一些html标签的大型wordy文本输出,我只想计算这些单词。

如何编写查询来执行此操作?

3 个答案:

答案 0 :(得分:18)

据我所知,没有办法直接计算SQL lite 3中字符串中的单词数。(我对mysql和ms sql更熟悉)

您可以使用长度和替换作为解决方法

 SELECT length(@String) - length(replace(@String, ' ', '')) + 1

答案 1 :(得分:0)

对于空白的列,上一个答案不正确。您需要在select:

中添加一个case / when / then语句
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

答案 2 :(得分:0)

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

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;