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

Oracle SQL中如何仅将查询结果字符串的前导零替换为空格

你当前使用的正则(0)会匹配字符串中所有的0字符,所以字符串中间的0也会被替换为空格,不符合仅替换前导零的需求,可以使用以下两种方案调整:

方案1:正则匹配实现

用^锚定字符串开头,仅匹配开头连续的前导零进行替换:

SELECT REGEXP_REPLACE('00015201', '^0', ' ', 1, 0) FROM DUAL;

参数说明:

  • 第4个参数1:代表从字符串第1位开始匹配
  • 第5个参数0:代表替换所有符合规则的匹配项(因为锚定了开头,只会替换连续的前导零)

方案2:非正则实现(性能更优)

先移除所有前导零,再向左补空格到和原字符串长度一致即可,该方案不需要正则解析,处理大批量数据时效率更高:

SELECT LPAD(LTRIM('00015201', '0'), LENGTH('00015201'), ' ') FROM DUAL;

两种方案执行后都可以得到预期输出 15201。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:45:02