删除数据集中空格后的所有数字



我一直在学习regexp_replace来清理我的数据集,并且遇到了一个新问题。

我有一个看起来像这样的数据集:

14美元。89
30 0
40 -
56 e
37.5
0.25
16.8.9


我想让数据集看起来像这样:
14.89
30
40
56
37.5
0.25
16.89

我使用了以下代码:

SELECT CAST(REGEXP_REPLACE('30 0', '(.).+|[^0-9.]', '123') AS DECIMAL(16,2)) from dual;

第一个代码的问题是,虽然它对其他数字有效,但它把300变成了300,而它应该是30

SELECT CAST(REGEXP_REPLACE('.25', '(.).+|[^0-9]|(w+).*$', '123') AS DECIMAL(16,2)) from dual;
SELECT CAST(REGEXP_REPLACE('.25 0', '(.).+|[^0-9]|(^.*?)(w+).*$', '123') AS DECIMAL(16,2)) from dual;

上面的两个代码的问题是,尽管它把30变成了30(这是我想要的),它把其他数字弄乱了。

如果有人能帮我解决这个问题,这样我就能让所有的数字看起来像第二个列表中的那样,那就太好了。谢谢你

try this:

SELECT REGEXP_REPLACE(REGEXP_REPLACE('30 0', ' .*$'),'(.).+|[^0-9.]', '123') FROM dual

最新更新