计算sqlite中的匹配值

用户11532986

我想计算(table1)中的数据中的匹配值

name    id  subject
maria   01  Math computer english
faro    02  Computer stat english
hina    03  Chemistry physics bio

下面的查询

Select *
from table1
where subject like ‘%english%’ or 
      subject like ‘%stat%’

返回前两行:

但是我还需要计算匹配的值,如下所示

count
1
2
0

(因为在第一行中只有一个值匹配,在第二行中有两个匹配项,而在第三行中没有匹配项)。

我可以得到想要的输出吗?

蒂姆·比格莱森(Tim Biegeleisen)

您可以尝试对CASE检查每个条件的表达式求和

SELECT
    subject,
    CASE WHEN subject LIKE '%english%' THEN 1 ELSE 0 END +
    CASE WHEN subject LIKE '%stat%' THEN 1 ELSE 0 END AS count
FROM 
    yourTable;

如果您想获取每个主题中与两个关键字之一都不匹配的单词数,可以尝试:

SELECT
    subject,
    LENGTH(subject) - LENGTH(REPLACE(subject, ' ', '')) + 1 -
    ( subject LIKE '%English%' ) - ( subject LIKE '%stat%' ) AS count
FROM yourTable;

在此处输入图片说明

演示版

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章