使用Oracle REGEXP_REPLACE函数处理含小数与斜杠的字符串
Oracle REGEXP_REPLACE 实现方案:保留斜杠后两位小数格式
针对你需要处理的表数据格式转换需求,这里提供Oracle的REGEXP_REPLACE函数实现方案:
核心SQL语句
SELECT REGEXP_REPLACE(info, '(/\d+\.\d+)\.\d+', '\1') AS processed_info FROM your_table_name;
正则表达式逻辑说明
(/\d+\.\d+):定义捕获组,匹配斜杠/后,一位或多位数字、小数点、再一位或多位数字的组合(比如/2.2、/1.1),这部分是需要保留的内容\.\d+:匹配最后一个小数点及后续所有数字,这是要被替换删除的部分\1:引用第一个捕获组的内容,作为替换后的结果
测试验证示例
用给定的样本数据测试效果:
WITH test_data AS ( SELECT 'info' AS info FROM dual UNION ALL SELECT '1/2.2.2' AS info FROM dual UNION ALL SELECT '2/1.1.1' AS info FROM dual UNION ALL SELECT '3/1.1.11' AS info FROM dual ) SELECT info, REGEXP_REPLACE(info, '(/\d+\.\d+)\.\d+', '\1') AS processed_info FROM test_data;
执行后输出结果:
| INFO | PROCESSED_INFO |
|---|---|
| info | info |
| 1/2.2.2 | 1/2.2 |
| 2/1.1.1 | 2/1.1 |
| 3/1.1.11 | 3/1.1 |
该方案会自动忽略非目标格式的字符串(如示例中的info),仅处理符合数字/数字.数字.数字或数字/数字.数字.多位数格式的内容。
内容的提问来源于stack exchange,提问作者testing22
相关产品推荐
相关产品推荐

