如果某些条件为真,则进行求和

Gug*_*ugu 8 mysql

我正在尝试构建一个查询,如果设置了某个参数,它将执行求和.例如:

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不起作用,你能不知道应该对此进行什么样的正确查询.

Tho*_*mas 9

看看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语句.如果该测试不成立,则转到下一个,依此类推.