我想计算(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
(因为在第一行中只有一个值匹配,在第二行中有两个匹配项,而在第三行中没有任何匹配项。)
我能得到想要的输出吗?
答案 0 :(得分:2)
您可以尝试对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;
答案 1 :(得分:1)
SQLite验证条件,分别返回1
和0
的{{1}}和true
的布尔值,因此您可以这样做:
false