oracle11g - 如何删除 - 从右到左读取字符串值时
问题描述
我正在根据现有值 ABP-1-3-3 CBP-1-10-12-14 中最右边的值创建新列
我能够从左侧读取的新列的预期值,我得到的值
-3 14
如何使用 regexp replace 修改下面的代码以删除任何 - ?
SUBSTR(TEST, -2, INSTR(TEST, '-')-1) 作为 TEST2,
解决方案
试试这个:
with test as
( select 'CBP-1-10-12-14' v1 from dual
union
select 'ABP-1-3-3' v1 from dual
)
select regexp_substr( v1 , '[0-9]*$' )
from test
另请查看https://regex101.com/r/bS7hF5/1。这是一个整洁的网站。放入您的正则表达式字符串,它会将其“翻译”为人类可读的描述。
推荐阅读
- python - 存储会话时在张量流中出现错误“没有要保存的变量”
- arrays - 如何在golang中创建具有动态长度而不是切片的数组?
- square - Square - 通过 API 发送数字收据
- javascript - 如何在没有动画的情况下从底部上拉刷新网页
- mysql - 如何使用 sql 查询将历史外汇数据从 1 分钟级别的数据汇总到 10 分钟级别的数据?
- ms-access - 每 10 分钟自动调度 MSAccess DB VBA 模块
- webpack - Vue.js Webpack:如何从绑定到方法的 :src 返回资产路径
- python - Python - 在 python 中创建读取 csv 文件的 SQL 表语法
- bash - 是否可以使用 bash 在 for 循环中生成动态 curl 输出
- java - 将所有对 /api/v1/** 的请求传递给旧的 api 服务器