Postgresql - 求和时如何将 NaN 视为 0?

Lud*_*udo 3 postgresql null sum nan aggregate-functions

我有一个包含数值和 NaN 的表。求和时,如果所选值包含 NaN,则结果将为 NaN。有没有办法让postgresql在求和时将它们视为0而不是NaN?或者我只需将表中的所有 NaN 转换为 0 或 Null?

kli*_*lin 10

使用NULLIF,示例:

with my_table(col) as (
values
    (1::numeric),(2),('NaN')
)

select sum(col) as original, sum(nullif(col, 'NaN')) as corrected
from my_table;

 original | corrected 
----------+-----------
      NaN |         3
(1 row) 
Run Code Online (Sandbox Code Playgroud)