在sql oracle中从字符串中提取最后4位数字

hk8txs48  于 2023-08-04  发布在  Oracle
关注(0)|答案(1)|浏览(240)

我有一个以列作为字符串的表。要求是提取最后4位数字。
问题是字符串是动态的,数字在不同的位置。
在这种情况下:(\d{4})"}}正则表达式也不会工作,因为它是每个位置的最后4个,但在我的情况下,它是动态字符串。
样本数据:
| 预期结果| Expected result |
| --| ------------ |
| 六七八九| 6789 |
| 四五六七| 4567 |
| 一二三四| 1234 |
| 三千零一| 3001 |

Create table regex_string Add Value vachar2(100);

Insert into table regex_string values('123456789');
Insert into table regex_string values('21-34-567');
Insert into table regex_string values('2150-X1234-YZ');
Insert into table regex_string values('21-22-93-001');

字符串

evrscar2

evrscar21#

我们可以通过首先执行正则表达式替换来移除所有非数字字符来实现这一点。然后取最后4位数字的简单子串:

SELECT SUBSTR(REGEXP_REPLACE(val, '[^0-9]+', ''), -4) AS last_four
FROM regex_string;

字符串

Demo

相关问题