Android 安卓;空";从总和
我有一个从两个表中获取数据的查询。 它可以工作,但是如果没有值,这两个和将返回NULL。 我怎样才能得到零呢Android 安卓;空";从总和,android,sqlite,Android,Sqlite,我有一个从两个表中获取数据的查询。 它可以工作,但是如果没有值,这两个和将返回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 ) 您可以在字段上使用IFNULL语句 请参见关于SQlitec
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 )
您可以在字段上使用IFNULL语句
请参见关于SQlitecoalesce()的内容 函数的作用是:返回其第一个非NULL参数的副本,如果所有参数都为NULL,则返回NULL。Coalesce()必须至少有2个参数 对于您可以使用的每个字段:
coalesce(c.field_X,0)
如果c.field_X为NULL,则查询将返回0
请参见如果没有非空值,求和函数将返回NULL 要在没有输入值的情况下获得0的返回值,只需将SUM替换为函数:
选择总计(g.field1),
总计(g.2),
...
您希望得到什么?有错误吗?LogCat怎么说?现在如果SUM(g.field1),SUM(g.field2)
为0,我得到的是“null”,相反,我会得到相同的结果。我希望我解释了两个方面:没有错误,但我使用coalesce()
的查询结果是null,所以如果(c.field\u 1=g.field5)
为null,我仍然会运行查询从Tabel2 c中选择c.\u id,c.field\u 1,c.field\u 3
我该怎么做?我不明白你的意思,你能重新措辞吗?(c.field_1=g.field5)如何可以为空?它不是真的就是假的,不是空的。如果你想检查是否相等,包括NULL检查,你可以分解If条件来明确地处理NULL VAL。Si puòessere perchénella clausola在这里遇到g.field5
conc.field_1
,quindi sec.field_1
vuoto la query non dárisultati。A quel punto vorrei far eseguire solo从表2中选择c._id,c.field_1,c.field_3 c
让我们为其他人保留英语(我也是意大利人),但其他人不是:)条件不能为空(但术语可以如您所解释)。如果其中一个值为null,您基本上希望忽略该条件。您可以这样修改WHERE:WHERE(c.field_1为NULL或g.field5为NULL或c.field_1=g.field5),不幸的是,即使如此,如果c.field_1返回NULL。我可以用子查询替换它吗?但是在我运行光标的时候?