【发布时间】:2010-11-14 06:56:02
【问题描述】:
我有一列在某些行中包含空值。
我想通过在 sqlite 中编写一个 select 语句来对列值求和。
如何编写语句,使其将空值视为 0。
我当前的 sqlite 语句:从 table1 中选择 sum(amount) 在返回 null 时给出错误。
请帮忙。
【问题讨论】:
标签: objective-c iphone-sdk-3.0 sqlite
我有一列在某些行中包含空值。
我想通过在 sqlite 中编写一个 select 语句来对列值求和。
如何编写语句,使其将空值视为 0。
我当前的 sqlite 语句:从 table1 中选择 sum(amount) 在返回 null 时给出错误。
请帮忙。
【问题讨论】:
标签: objective-c iphone-sdk-3.0 sqlite
sum() 和 total() 聚合函数返回组中所有非 NULL 值的总和。如果没有非 NULL 输入行,则 sum() 返回 NULL,但 total() 返回 0.0。对于没有行的总和,NULL 通常不是一个有用的结果,但是
所以我猜你最好使用 total() 而不是 sum() 以防你期望结果是“非空”。
【讨论】:
您可以使用 ifnull(x,y) 或 coalesce(x,y,z,...) 函数。它们中的每一个都从左到右返回参数列表中的第一个非空值。 ifnull 正好有两个参数,而 coalesce 至少有两个。
从 table1 中选择 sum(ifnull(amount, 0))
【讨论】: