我有一个包含数值和NaN的表。求和时,如果所选值包含NaN,则结果将为NaN。有没有一种方法可以使postgresql在求和而不是NaN时将其视为0?还是只需要将表中的所有NaN都转换为0或Null?
答案 0 :(得分:1)
使用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)