无法在postgresql数据库中从nan转换为0

z3yyvxxp  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(654)

我在postgresql数据库中遇到了一个nan问题。
我要更新的列的类型为numeric。无论如何,当我在数据库中创建db行时,它会显示一些行“nan”。
当我想将“nan”更新为0时,它会给我一个语法错误,因为列是数字。
以下我用作查询:

UPDATE anytable 
  SET "anycolumn" = 0 
WHERE "anycolumn" = 'NaN';

“德语”错误:
ung公司ültige-eingabesyntax公司ür典型整数:»南«
sql状态:22p02
人物:85
比尔
马塞尔

uxhixvfz

uxhixvfz1#

那对我没用 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)
bgibtngc

bgibtngc2#

我想你的专栏实际上包含 null 值(显示为 'NaN '在你的客户)。所以你可以把它拼成:

UPDATE anytable SET anycolumn = 0 WHERE anycolumn IS NULL;

相关问题