gpt4 book ai didi

postgresql - 如何检查数字是否为 NaN

转载 作者:行者123 更新时间:2023-11-29 11:13:56 26 4
gpt4 key购买 nike

我需要测试 PostgreSQL 中的数字/浮点值是否不是数字 (NaN)。注意 "PostgreSQL treats NaN values as equal" .因为我在 PostgreSQL 9.3 中没有看到任何 isnan 函数,所以这是我最好的尝试:

create or replace function isnan(double precision) returns boolean as
$$select $1::text = 'NaN'::text$$ language sql;

有没有更好的方法来测试 NaN

最佳答案

Is there any better way to test for NaNs?

简单比较是否相等:

SELECT double precision 'NaN' = double precision 'NaN';

因为,根据您链接到的文档,Pg 将 NaN 视为相等的。我对此感到惊讶,因为它正确地将 NULL 视为不等于任何其他 NULL,并且会期望 NaN = NaN 以返回 NULL,但是......嗯,它有效。

或者如果你想要一个函数:

create or replace function isnan(double precision) 
language sql
immutable
returns boolean as $$
select $1 = double precision 'NaN'
$$;

关于postgresql - 如何检查数字是否为 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25858859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com