说我在MySQL中有一个简单的功能:
SELECT SUM(Column 1) from Table WHERE Column 2='Test'
Run Code Online (Sandbox Code Playgroud)
如果第2列中没有条目包含文本'Test',则此函数返回NULL,而我希望它返回0.
我知道在这里曾经问过几次类似的问题,但是我无法根据自己的目的调整答案,所以我很感激能帮助你做好准备.
select ifnull(null,'replaces the null')
-->replaces the null
select coalesce(null,null,'replaces the null')
-->replaces the null
Run Code Online (Sandbox Code Playgroud)
在这两个条款中,主要区别在于论证传递.对于ifnull它的两个参数和合并2或3我们可以通过,除了这两个之间我们有任何其他区别吗?它在MSSql中有何不同.
我有一个MySQL查询返回一行1s和0s的单行.这是一个进度条指示器.我现在在代码中对它进行求和,但我尝试在查询中对值进行求和,并意识到我不能使用SUM(),因为它们只有很多列而只有一行.
有没有办法可以在查询中自动对此进行求和?就像这样:
item_1 | item_2 | item_3 | item_4
-------+--------+--------+--------
1 | 1 | 0 | 0
Run Code Online (Sandbox Code Playgroud)
编辑:我忘了提,item_1等等不是简单的字段值,但每个都是一个表达式,例如SELECT IF( field_1 = 1 and field_2 IS NOT NULL, 0, 1 ) AS item_1 ...,所以看起来我必须做一个嵌套查询:
SELECT ( item_1 + item_2 ... ) FROM ( SELECT IF( field_1 = y and field_2 IS NOT NULL, 1, 0 ) AS item_1 ... ) AS alias
Run Code Online (Sandbox Code Playgroud)
正确?