如果你看到2个Abc,那么计算总数就像9 * 2 = 18 第二行为15 * 2 = 30,就像那样
add Fun1 Fun2 Fun3
9 Abc Wxy Abc
15 def Abc Abc
答案 0 :(得分:3)
一系列case
表达式可以解决这个问题:
SELECT add * ((CASE Fun1 WHEN 'Abc' THEN 1 ELSE 0 END) +
(CASE Fun2 WHEN 'Abc' THEN 1 ELSE 0 END) +
(CASE Fun3 WHEN 'Abc' THEN 1 ELSE 0 END)) AS total
FROM mytable
答案 1 :(得分:2)
使用addn
代替add
,add
是SQL中的保留字
SELECT addn, Fun1, Fun2, Fun3, ((CASE Fun1 WHEN 'Abc' THEN 1 ELSE 0 END) +
(CASE Fun2 WHEN 'Abc' THEN 1 ELSE 0 END) +
(CASE Fun3 WHEN 'Abc' THEN 1 ELSE 0 END)) * addn AS result
FROM yourtable
输出:
addn Fun1 Fun2 Fun3 result
9 Abc Wxy Abc 18
15 def Abc Abc 30