【问题标题】:How to get null value when summing a column has a null value对具有空值的列求和时如何获取空值
【发布时间】:2014-06-05 12:03:28
【问题描述】:
DECLARE  @tablo TABLE (oran INT,deger INT)
INSERT INTO @tablo
SELECT 10,NULL
UNION ALL
SELECT 10,20

SELECT oran*deger/100 FROM @tablo

SELECT SUM(oran*deger/100) FROM @tablo

SELECT NULL+2

当我使用 sum 函数时,它返回一个值,但如果一列有一个空值,我希望它返回空值。 这怎么可能? 提前谢谢...

【问题讨论】:

    标签: sql tsql sum


    【解决方案1】:

    sum()(与其他聚合函数一样)在组合来自不同行的值时忽略 NULLs。你可以用额外的逻辑做你想做的事:

    SELECT (case when count(*) = count(oran*deger)
                 then SUM(oran*deger/100)
            end)
    FROM @tablo;
    

    构造count(*) = count(<whatever>) 是我能想到的确定值是否为NULL 的最短方法。第一部分计算组中的行数。第二个计算非 NULL 值的数量。如果这些不同,则某处存在NULL 值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-25
      • 2021-06-01
      • 1970-01-01
      相关资源
      最近更新 更多