首页 > 解决方案 > Round 和 avg 的 NULL 值

问题描述

我正在尝试获得一个具有一些空值的平均时间

(ROUND (AVG (TRUNC (starttime- endtime)*24 + TRUNC (24 * MOD (endtime- starttime, 1)))))

我的输出低于

48
22
15
96
22
(NULL)
52

有什么方法可以在我们出现的任何地方手动传递'-'值

标签: sqloracle

解决方案


您可以IS NULLCASE表达式一起使用以有条件地显示-计算NULL

SELECT
...
    CASE WHEN starttime - endtime IS NOT NULL
         THEN TO_CHAR(ROUND(AVG(TRUNC(starttime-endtime)*24 + TRUNC(24*MOD(endtime-starttime, 1)))))
         ELSE '-' END AS output
FROM yourTable;

推荐阅读