根据字符串查找字段,然后提取子字符串值



我只想从以下查询结果中提取序列号:值(1G20441XC454(:

SELECT REGEXP_SUBSTR('Entry: Make: 1, Model: 6, Year: 7, Serial No: 1G20441XC454, Point of Origin: ', '<what would go here>') "REGEXPR_SUBSTR" FROM DUAL

所以我需要找到字符串"Serial No:",然后找到逗号之前的所有字符,然后修剪值以删除前导空格。我还必须假设并非所有逗号分隔的字段都将存在或以相同的顺序存在。我想这可能需要嵌套的REGEXP?

这里有一个选项:

SQL> SELECT
2      regexp_substr(regexp_substr('Entry: Make: 1, Model: 6, Year: 7, Serial No: 1G20441XC454, Point of Origin: ',
3                                  'Serial No: w+'), 'w+$') "REGEXPR_SUBSTR"
4  FROM dual;
REGEXPR_SUBS
------------
1G20441XC454
SQL>

最新更新