在pgAdmin 4中导入含$##,##格式数据的CSV,该选何种列数据类型?
解决CSV含
"$##,##"格式列的导入问题 核心问题
你遇到的问题是数据库导入工具无法自动解析带美元符号$和千分位逗号,的字符串格式——哪怕用Money类型也不行,多数数据库的Money类型默认只识别纯数字(含可选小数点),不会自动处理前置$和中间的千分位分隔符。
具体解决步骤
- 预处理CSV文件:批量移除这两列的
$符号和千分位逗号。比如用Excel选中目标列,按Ctrl+H先替换$为空,再替换,为空,把"$12,345"改成"12345"、"$12,345.67"改成"12345.67"。 - 调整导入工具解析规则:如果用pgAdmin、MySQL Workbench这类可视化工具,找到导入设置里的「格式选项」,开启货币符号识别和千分位分隔符支持,指定符号为
$、分隔符为,。 - 用SQL手动导入(更可靠):先把CSV导入临时表(这两列设为
VARCHAR类型),再通过SQL清洗数据后插入目标表:-- 示例:临时表temp_table,目标表target_table INSERT INTO target_table (money_col1, money_col2) SELECT REPLACE(REPLACE(money_col1, '$', ''), ',', '')::NUMERIC, REPLACE(REPLACE(money_col2, '$', ''), ',', '')::NUMERIC FROM temp_table; - 检查CSV引号规范:确保所有目标列的数值都被正确引号包裹(比如统一为
"$12,345"格式),避免部分行无引号或引号混乱导致解析失败。
内容的提问来源于stack exchange,提问作者Luís Morais
相关产品推荐
相关产品推荐

