有没有一种方法可以计算文本字符串中的单词?
我使用的是SQLite 3,我正在尝试编写一个查询,该查询接受一串长文本字符串,并计算每个字符串中的单词数量。
我还想忽略html标签(或插入符号之间的任何内容),如段落标签、分隔符等。
因此,当我运行一个从适当的列中选择文本的查询时,我得到了一个包含一些html标记的长长的文本输出,我只想计算一下单词。
我如何写一个查询来做这件事呢?
发布于 2010-07-21 04:05:31
据我所知,在SQL lite3中无法直接统计字符串中的字数。(我比较熟悉mysql和ms sql)
您可以使用Length和Replace作为变通方法
SELECT length(@String) - length(replace(@String, ' ', '')) + 1发布于 2015-02-19 04:11:12
对于空白列,前面的答案是不正确的。您需要将case/when/then语句添加到select:
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。已更改条件以允许它。
发布于 2017-05-01 00:24:47
来自@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;https://stackoverflow.com/questions/3293790
复制相似问题