来自SUM的Android“null”

时间:2014-01-09 21:00:10

标签: android sqlite

我有一个从2个表中获取数据的查询。 它可以工作,但是如果没有值,则两个SUM返回NULL。 我怎样才能得到零?

SELECT SUM(g.field1), 
       SUM(g.field2), 
       c._id, 
       c.field_1, 
       c.field_3 
  FROM Table1 g 
  JOIN Tabel2 c 
 WHERE ( c.field_1 = g.field5 )

3 个答案:

答案 0 :(得分:9)

如果没有非NULL值,则SUM函数返回NULL。

要获得返回值0,即使没有输入值,只需将SUM替换为TOTAL函数:

SELECT TOTAL(g.field1), 
       TOTAL(g.field2), 
       ...

答案 1 :(得分:0)

您可以在字段上使用IFNULL语句,

请参阅this post

答案 2 :(得分:0)

SQlite coalesce()怎么样?

coalesce()函数返回其第一个非NULL参数的副本,如果所有参数都为NULL,则返回NULL。 Coalesce()必须至少有2个参数。

在您的情况下,您可以使用每个字段:

coalesce(c.field_X,0)

如果c.field_X为NULL,则查询将返回0.

请参阅http://www.sqlite.org/lang_corefunc.html