我正在尝试更改postgresql表中的列数据类型。列名为_2010_10
,类型为文本,值为18.74(文本格式)。我正在尝试将文本类型更改为数字。这是我的输入/输出:
ALTER table cadata.pricetorentratio
ALTER column _2010_10 type numeric USING (trim(_2010_10)::numeric);
错误:数字类型的输入语法无效:“”
不确定我为什么会收到此错误。
答案 0 :(得分:2)
您可以使用NULLIF
处理空白字符串''
:
ALTER table pricetorentratio
ALTER column _2010_10 type numeric USING (NULLIF(trim(_2010_10),'')::numeric);
<强> DBFiddle Demo 强>
SELECT ''::numeric
-- invalid input syntax for type numeric: ""
答案 1 :(得分:-1)
ALTER TABLE `pricetorentratio` CHANGE `_2010_10` `_2010_10` FLOAT NULL DEFAULT NULL;