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

PostgreSQL中如何对整列所有行应用TRANSLATE函数移除字符串中的点

正确实现方案

你之前报错是因为语法错误:TRANSLATE 函数的第一个参数直接传入要处理的列名即可,不需要嵌套子查询,系统会自动逐行处理该列的所有值。

1. 基于TRANSLATE的正确写法

-- 仅清理字符
SELECT translate(num_column, '.', '') AS cleaned_num FROM my_table;

-- 如果需要转为数值类型方便后续计算,可加类型转换
SELECT translate(num_column, '.', '')::BIGINT AS cleaned_num FROM my_table;

2. 更适配的替代方案:REPLACE函数

你当前的需求只是把固定的.字符替换为空,用REPLACE函数语义更贴合,代码可读性更高:

SELECT REPLACE(num_column, '.', '')::BIGINT AS cleaned_num FROM my_table;

额外说明

如果后续需要更新表中存储的原始值,也可以直接用UPDATE语句批量处理:

UPDATE my_table SET num_column = REPLACE(num_column, '.', '');

内容的提问来源于stack exchange,提问作者Amin Kiany

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:45:05