如何在字符串的倒数第三位插入字符?
解决方案
问题根因
你之前的写法不生效是因为replace是全局替换函数,只要字符串里出现和最后两位相同的子串都会被替换,无法精准只修改末尾两位的位置。
推荐实现方式
方法1:数学运算(最简单高效,适用于数值类型输入)
你需要的效果本质是把最后两位转为小数位,直接除以100即可实现,比字符串操作性能更高、写法更简洁:
-- 适配你原有逻辑的写法,保留两位小数 round(round(v_num/2) / 100, 2)
如果需要输出为字符串格式,再加对应数据库的转字符串函数即可。
方法2:字符串切割(适用于字符串类型输入)
直接拆分数字为「除最后两位的前缀」和「最后两位的后缀」,中间拼接小数点,完全不会出现误替换问题:
-- 通用写法 substr(处理后的数字, 1, length(处理后的数字) - 2) || '.' || substr(处理后的数字, -2) -- 适配你原有逻辑的写法 substr(round(v_num/2), 1, length(round(v_num/2)) - 2) || '.' || substr(round(v_num/2), -2)
内容的提问来源于stack exchange,提问作者John Al
相关产品推荐
相关产品推荐

