假设我有一个字段:

product_strength
10MG/ML
0.25MG
25MG
0.125MG

如何只提取“numeric”部分,然后转换为numeric?我可以做到这一点:regexp_replace(product_strength, '(\D|!\.)','','g')::numeric AS result_numeric
但问题是它实际上并不能解释小数。换句话说,这将返回
product_strength result_numeric
10MG/ML             10
0.25MG              25
25MG                25
0.125MG             125

但我想回去
product_strength result_numeric
10MG/ML             10
0.25MG              0.25
25MG                25
0.125MG             0.125

最佳答案

尝试this正则表达式来匹配数字;

\d+\.?\d*

编辑:正如“布尔类型”所说,如果你也需要负数,你可以添加一个可选的负号,并使用;
\-?\d+\.?\d*

08-28 03:12