ORACLE - 从字符串中选择数字的表达式
Posted
技术标签:
【中文标题】ORACLE - 从字符串中选择数字的表达式【英文标题】:ORACLE - expression that picks a number from string 【发布时间】:2021-09-27 18:06:46 【问题描述】:我有这张表,我需要选择字母“kV”或“KV”之前的数字。同样在最后一个示例中,el 编号的开头没有空格。
这里是例子:
select device_name from table;
--device_name can be:
15518 - 132 Garden Plain 138 kV l/o 0405 result 138
ALLENIM 345 KV ALL-RPM_I. result=345
179 BLOO345 KV TR84CT-P_I. result= 345. --on this case the number is withoutspace
我可以使用什么样的正则表达式来选择这些数字?
问候
【问题讨论】:
【参考方案1】:这里有一个选项:找到大写KV
前面的数字,然后删除KV
:
SQL> with test (col) as
2 (select '15518 - 132 Garden Plain 138 kV l/o 0405' from dual union all-- result 138
3 select 'ALLENIM 345 KV ALL-RPM_I.' from dual union all-- result=345
4 select '179 BLOO345 KV TR84CT-P_I.' from dual -- result=345
5 )
6 select col,
7 replace(regexp_substr(upper(col), '\d+(\s?)KV'), 'KV', '') result
8 from test;
COL RESULT
---------------------------------------- --------------------
15518 - 132 Garden Plain 138 kV l/o 0405 138
ALLENIM 345 KV ALL-RPM_I. 345
179 BLOO345 KV TR84CT-P_I. 345
SQL>
【讨论】:
以上是关于ORACLE - 从字符串中选择数字的表达式的主要内容,如果未能解决你的问题,请参考以下文章