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

REGEXP_SUBSTR提取逗号前数字异常:以0开头值提取错误

解决REGEXP_SUBSTR提取逗号前数字时0,1返回1的问题

直接修改正则表达式,加上开头锚点^,限定只匹配字符串开头到第一个逗号之间的内容:

SELECT REGEXP_SUBSTR(my_column, '^[^,]+', 1, 1) FROM myTable;

原因分析

原来的[^,]+没有限定匹配的起始位置,虽然指定了从第1个位置开始取第1个匹配项,但在某些场景下(比如数据存在隐藏前导字符、正则引擎匹配逻辑偏差),可能会错误匹配到逗号后的内容。加上^锚点后,正则会强制从字符串最开头开始匹配连续的非逗号字符,确保取到的是第一个逗号之前的所有内容,包括开头的0。

验证示例

  • 输入11,2 → 返回11
  • 输入5,2 → 返回5
  • 输入0,1 → 返回0

如果你的数据中逗号前有多余空白(比如 0,1),可以用TRIM()去掉前后空格:

SELECT TRIM(REGEXP_SUBSTR(my_column, '^[^,]+', 1, 1)) FROM myTable;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 13:15:38