Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓;空";从总和_Android_Sqlite - Fatal编程技术网

Android 安卓;空";从总和

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

我有一个从两个表中获取数据的查询。 它可以工作,但是如果没有值,这两个和将返回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语句


请参见

关于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
con
c.field_1
,quindi se
c.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。我可以用子查询替换它吗?但是在我运行光标的时候?