我想让数据集看起来像这样:
14.89
30
40
56
37.5
0.25
16.89
我一直在学习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