Postgres求和,认为NaN值为0

Postgres sum, consider NaN value as 0

我有一个 table,其列名值如下:

value
===
1.0
4.7
'NaN'
0

有些行可能有 NaN 值。 我需要 sum(value) 将 NaN 值视为 0,类似于 SELECT sum(isnull(value,0)) 但对于 NaN 值。 NaN 值有类似的东西吗?

您可以使用 case 表达式:

select sum(case when value <> 'NaN' then value end)

这将 NaN 视为 NULL,在 SUM() 中将被忽略。如果您喜欢 0.

,当然可以添加 else 0

您可以使用 nulliff,如下所示

select sum(nullif(value, 'NaN'))