【问题标题】:Alter Column TYPE USING - cannot change from varchar to numericAlter Column TYPE USING - 不能从 varchar 更改为 numeric
【发布时间】:2020-09-03 13:18:42
【问题描述】:

如果有人能帮我一点忙,我将不胜感激。我对 Postrgresql 10 完全陌生 我有一个大文件,数百万行 73 列,我无法导入,所以我将所有列设置为 varchar。现在我需要操作无法更改数据类型的数据。我试了几个小时。该列包含一些带有 1 位或 2 位小数的值。这就是我正在做的事情:

ALTER TABLE table1 
ALTER COLUMN facevalue TYPE numeric USING (facevalue::numeric);

这是我得到的错误

ERROR:  invalid input syntax for type numeric: " "
SQL state: 22P02

感谢您的时间和考虑

【问题讨论】:

    标签: postgresql sqldatatypes alter-column


    【解决方案1】:

    您显然有空字符串或只有空格的值。您需要将它们转换为 NULL

    ALTER TABLE table1 
       ALTER COLUMN facevalue TYPE numeric USING (nullif(trim(facevalue),'')::numeric);
    

    【讨论】:

      猜你喜欢
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多