我正在尝试构建一个查询,如果设置了某个参数,它将执行求和.例如:
SELECT SUM(IF(<condition>,field,field)) AS total_value
Run Code Online (Sandbox Code Playgroud)
......工作正常.
但我在IF()中有多个条件,如:
SELECT SUM(IF(<condition> <condition>,field,field)) AS total_value
Run Code Online (Sandbox Code Playgroud)
..哪个不起作用,你能不知道对于这个应该是什么样的正确查询.
更新
对不起,错误的查询,正确的查询
我当前的查询看起来像这样:SELECT SUM(IF(condition1,field,field))AS total_value正常工作.
但我在IF()中有多个条件,如SELECT SUM(IF(条件1条件2,字段,字段))AS total_value不起作用,你能不知道应该对此进行什么样的正确查询.
看看Case声明:
Select Sum( Case When column = test Then column2 Else column3 End )
...
Run Code Online (Sandbox Code Playgroud)
如果您有多个条件,您仍然可以使用案例:
Select Sum( Case
When column1 = 'Foo' Then column2
When column1 = 'Bar' Then column3
When column1 = 'Gamma' Then column2 + column3
Else column3 End )
From ...
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果column1不为null并且不等于'Foo',那么它将转到下一个When语句.如果该测试不成立,则转到下一个,依此类推.