我已经发现我需要使用substr / instr或regex但是阅读有关这些的文档,我无法完成它... 我在Oracle 11.2上。
所以这就是我所拥有的。 字符串列表如:
743H5-34L-56
123HD34-7L
12HSS-34R
23Z67-4R-C23
我需要的是第一个' - '之后的数字(长度1或2),直到出现'L'或'R'。
有人有什么建议吗?
答案 0 :(得分:4)
另一个版本(没有花哨的外观:-):
with v_data as (
select '743H5-34L-56' val from dual
union all
select '123HD34-7L' val from dual
union all
select '12HSS-34R' val from dual
union all
select '23Z67-4R-C23' val from dual
)
select
val,
regexp_replace(val, '^[^-]+-(\d+)[LR].*', '\1')
from v_data
匹配
答案 1 :(得分:3)
regexp_replace(string, '^.*?-(\d+)[LR].*$', '\1')