我在Postgresql数据库中遇到了NaN的问题。
我要更新的列具有数字类型。无论如何,当我在数据库中创建了db行时,它会向我显示一些行"NaN“。
当我想将"NaN“更新为0时,它会给出一个语法错误,因为该列是数字的。
以下是用作查询的内容:
UPDATE anytable
SET "anycolumn" = 0
WHERE "anycolumn" = 'NaN';
“德语”中的错误:
ungültige Eingabesyntaxür Typ整数:NaN
SQL状态: 22P02
性格: 85
Br
马塞尔
发布于 2020-06-19 13:05:45
我假设您的列实际上包含null
值(在客户端中显示为'NaN
‘)。所以你会把这个拼成:
UPDATE anytable SET anycolumn = 0 WHERE anycolumn IS NULL;
发布于 2020-06-19 13:10:22
这将不适用于integer
列,因为整数不支持NaN
。
但是它对numeric
,real
和double precision
都很好
SELECT 'NaN'::numeric;
numeric
---------
NaN
(1 row)
SELECT 'NaN'::integer;
ERROR: invalid input syntax for type integer: "NaN"
LINE 1: SELECT 'NaN'::integer;
^
SELECT 'NaN'::double precision;
float8
--------
NaN
(1 row)
https://stackoverflow.com/questions/62470941
复制相似问题