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

在Oracle中如何移除列值的逗号与小数部分后更新对应数据

Oracle带千位分隔符数值格式列转换更新方案

你当前存储的是带千位逗号分隔的浮点格式值,要转换为四舍五入后的整数,可按以下步骤操作:

1. 先验证转换逻辑(必须先执行,避免错误更新数据)

执行SELECT语句测试转换效果,确认和预期结果一致再进行更新:

SELECT ROUND(TO_NUMBER(你的列名, '999G999G999D99')) AS 转换后值 FROM 你的表名;

参数说明:

  • TO_NUMBER格式符中G对应千位分隔符逗号,D对应小数点,完美适配你给出的6,983.80这类格式
  • ROUND默认保留0位小数,正好实现需求的四舍五入规则:6,983.80转换为6984、12,287.73转换为12288、6,977.00转换为6977,完全匹配目标结果。

2. 执行更新操作

建议开启事务操作,确认结果无误后再提交,避免不可逆的错误:

-- 如果目标列是数值类型,直接执行更新
UPDATE 你的表名 SET 你的列名 = ROUND(TO_NUMBER(你的列名, '999G999G999D99'));

-- 如果目标列是字符串类型,需要把转换后的整数转回字符串
UPDATE 你的表名 SET 你的列名 = TO_CHAR(ROUND(TO_NUMBER(你的列名, '999G999G999D99')));

-- 确认更新结果符合预期后执行提交
COMMIT;
-- 如果结果有误可执行回滚:ROLLBACK;

注意事项

如果你的存储值最大长度超过当前格式符范围,可按需扩展格式符中9的个数,比如十亿级数值可调整为999G999G999G999D99。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:45:00