You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行ALTER TABLE转换字段类型时遇numeric类型语法错误求助

解决PostgreSQL转换列类型时的空字符串语法错误

错误原因

你的last_valuation_upd列中存在空字符串(""),PostgreSQL无法直接将空字符串转换为numeric类型,因此抛出invalid input syntax for type numeric: ""错误。

解决方案

根据业务需求选择以下任意一种处理方式:

方式1:将空字符串转为NULL

如果空字符串代表无值,用NULLIF函数把空字符串替换为NULL后再转换类型:

ALTER TABLE unicorns
ALTER COLUMN last_valuation_upd TYPE numeric 
USING (NULLIF(last_valuation_upd, '')::numeric);

方式2:将空字符串转为默认数值(如0)

如果空字符串需要映射为具体数值(比如0),用CASE语句处理后转换:

ALTER TABLE unicorns
ALTER COLUMN last_valuation_upd TYPE numeric 
USING (CASE WHEN last_valuation_upd = '' THEN '0' ELSE last_valuation_upd END)::numeric;

额外检查(可选)

执行转换前可以先查询列中的空字符串数量,确认数据情况:

SELECT COUNT(*) FROM unicorns WHERE last_valuation_upd = '';

内容的提问来源于stack exchange,提问作者Edjohn Vinluan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:50:22