我正在尝试构建一个查询,如果某个参数是一个总和 组。例如:
SELECT SUM(IF(<condition>,field,field)) AS total_value
......这是正常的。
但我在IF()中有多个条件,例如:
SELECT SUM(IF(<condition> <condition>,field,field)) AS total_value
..这不起作用,你能不知道对于这个应该是什么样的正确查询。
更新
抱歉错误的查询,正确的查询
我当前的查询看起来像这样: SELECT SUM(IF(condition1,field,field))AS total_value 这是正常的。
但我在IF()中有多个条件,比如 SELECT SUM(IF(condition1 condition2,field,field))AS total_value 哪个不起作用,你能不知道对于这个应该是什么样的正确查询。
答案 0 :(得分:9)
查看案例陈述:
Select Sum( Case When column = test Then column2 Else column3 End )
...
如果您有多个条件,您仍然可以使用案例:
Select Sum( Case
When column1 = 'Foo' Then column2
When column1 = 'Bar' Then column3
When column1 = 'Gamma' Then column2 + column3
Else column3 End )
From ...
在这种情况下,如果column1不为null且不等于'Foo',那么它将转到下一个When语句。如果该测试不成立,则进入下一个等等。
答案 1 :(得分:2)
select sum(case when a = b and x = y then field1 + field2 else 0 end)
<强>更新强>
也许你的意思是:
select sum(case when a = b then field1 else field2 end)
答案 2 :(得分:1)
SELECT SUM(IF(field = value1 OR field = value2 OR field = value3,1,NULL)) AS total_value
答案 3 :(得分:0)
SELECT SUM(IF(<condition1>,
IF(<condition2>,
<field1>,
<field2>),
<field2>)) AS total_value