我有一个基于员工反馈返回注释的sql。
正如您在下面的注释中所看到的,格式可能有点不同。
有什么办法可以把数字提取出来吗?
例子:
W.C. 06.07.2022 change from 7 to 5
wk com 13/07 demand 8 change to 13
Increase demand from 7 to 12 W/C 11/07输出结果
7 and 5,
8 and 13,
7 and 12发布于 2022-07-11 15:09:50
这里有一种给出样本数据的方法。首先识别一个或多个数字组成的组,然后是一个可选的单词"change“和一个空格,然后是"to和一个空格”,然后是一个或多个数字。在该组中,将所需的数字分组。当然,这里对于数字之间的单词有很大的假设。
WITH tbl(ID, emp_comment) AS (
SELECT 1, 'W.C. 06.07.2022 change from 7 to 5' FROM dual UNION ALL
SELECT 2, 'wk com 13/07 demand 8 change to 13' FROM dual UNION ALL
SELECT 3, 'Increase demand from 7 to 12 W/C 11/07' FROM dual
)
SELECT ID, REGEXP_SUBSTR(emp_comment, '.* ((\d+) (change )?to \d+).*', 1, 1, NULL, 2) nbr_1,
REGEXP_SUBSTR(emp_comment, '.* (\d+ (change )?to (\d+)).*', 1, 1, NULL, 3) nbr_2
FROM tbl;
ID NBR_1 NBR_2
---------- ----- -----
1 7 5
2 8 13
3 7 12
3 rows selected.https://stackoverflow.com/questions/72825136
复制相似问题