【问题标题】:How to write sqlite select statement for NULL records如何为 NULL 记录编写 sqlite select 语句
【发布时间】:2010-11-14 06:56:02
【问题描述】:

我有一列在某些行中包含空值。

我想通过在 sqlite 中编写一个 select 语句来对列值求和。

如何编写语句,使其将空值视为 0。

我当前的 sqlite 语句:从 table1 中选择 sum(amount) 在返回 null 时给出错误。

请帮忙。

【问题讨论】:

    标签: objective-c iphone-sdk-3.0 sqlite


    【解决方案1】:

    根据SQLite documentation:

    sum() 和 total() 聚合函数返回组中所有非 NULL 值的总和。如果没有非 NULL 输入行,则 sum() 返回 NULL,但 total() 返回 0.0。对于没有行的总和,NULL 通常不是一个有用的结果,但是

    所以我猜你最好使用 total() 而不是 sum() 以防你期望结果是“非空”。

    【讨论】:

      【解决方案2】:

      您可以使用 ifnull(x,y) 或 coalesce(x,y,z,...) 函数。它们中的每一个都从左到右返回参数列表中的第一个非空值。 ifnull 正好有两个参数,而 coalesce 至少有两个。

      从 table1 中选择 sum(ifnull(amount, 0))

      【讨论】:

        猜你喜欢
        • 2016-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-18
        • 2011-08-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多