我想计算(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
(因为在第一行中只有一个值匹配,在第二行中有两个匹配项,而在第三行中没有匹配项)。
我可以得到想要的输出吗?
您可以尝试对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] 删除。
我来说两句