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

Oracle SQL中如何从动态字符串提取最后4位数字

提取字符串中的最后4位有效数字

需求说明

需要从格式无固定规律的字符串中,提取所有数字字符拼接成纯数字串后,取该串的最后4位,而非原字符串位置上的最后4位。

示例数据

Value预期结果
1234567896789
21-34-5674567
2150-X1234-YZ1234
21-22-93-0013001

修正后的建表及插入语句

原建表语句存在语法错误,修正为Oracle兼容版本:

CREATE TABLE regex_string (Value VARCHAR2(100));

INSERT INTO regex_string VALUES('123456789');
INSERT INTO regex_string VALUES('21-34-567');
INSERT INTO regex_string VALUES('2150-X1234-YZ');
INSERT INTO regex_string VALUES('21-22-93-001');

解决方案

通过两步操作实现需求:先清理字符串中的非数字字符,再截取纯数字串的最后4位。使用Oracle的正则表达式和字符串截取函数即可完成:

SELECT
  Value,
  SUBSTR(REGEXP_REPLACE(Value, '[^0-9]', ''), -4) AS last_four_digits
FROM regex_string;

代码解释

  • REGEXP_REPLACE(Value, '[^0-9]', ''):匹配所有非数字字符并替换为空,得到仅包含数字的纯字符串
  • SUBSTR(..., -4):从字符串末尾开始截取4个字符,直接获取最后4位数字

验证结果

执行上述SQL后,输出结果与预期完全一致:

Valuelast_four_digits
1234567896789
21-34-5674567
2150-X1234-YZ1234
21-22-93-0013001

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:32:30