我有一个从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 )
答案 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.