oracle 提取字符串中最后一个数字后的值

ktecyv1j  于 2022-11-28  发布在  Oracle
关注(0)|答案(2)|浏览(335)

拥有
测试
测试ABC
美国ABC公司
M234测试
需要
测试
测试
ABC公司
测试

ryevplcw

ryevplcw1#

您可以使用REGEXP_SUBSTR

SELECT REGEXP_SUBSTR(value, '\D+$') as last_part
FROM   table_name;

其中,对于示例数据:

CREATE TABLE table_name(value) AS
SELECT 'M1234TESTABC' FROM DUAL UNION ALL
SELECT 'M34567TESTABC' FROM DUAL UNION ALL
SELECT 'M100023459ABC' FROM DUAL UNION ALL
SELECT 'M234TEST' FROM DUAL;

输出:
| 最后零件|
| - -|
| 测试|
| 测试|
| ABC公司|
| 测试|
fiddle

cczfrluj

cczfrluj2#

我将在这里使用正则表达式替换方法:

SELECT col, REGEXP_REPLACE(col, '.*[0-9]', '') AS col_out
FROM yourTable;

如果输入中没有任何数字,则此方法会正确执行,在这种情况下,将返回原始值。

相关问题