PostgreSQLでNaNを扱う
定数値としてのNaN
'NaN'::NUMERICという値が使えます。
postgres=# select 'NaN'::NUMERIC;
numeric
---------
NaN
(1 row)
postgres=#
NaNを判定する
'NaN'::NUMERICと比較すればよいですね。
postgres=# create table hoge (num1 numeric);
CREATE TABLE
postgres=# insert into hoge values('NaN'::NUMERIC);
INSERT 0 1
postgres=# select * from hoge;
num1
------
NaN
(1 row)
postgres=# select * from hoge where num1 = 'NaN'::NUMERIC;
num1
------
NaN
(1 row)
postgres=#
::NUMERICなくても
いけますね
postgres=# insert into hoge values('NaN');
INSERT 0 1
postgres=# select * from hoge;
num1
------
NaN
NaN
(2 rows)
postgres=# select * from hoge where num1 = 'NaN';
num1
------
NaN
NaN
(2 rows)
postgres=#
参考
マニュアルにも記載があった。
'Infinity'とか、'-Intinity'も使えますね。