REGEXP从字符串中提取数字

时间:2020-07-22 10:37:55

标签: sql oracle

正在寻求有关REGEXP的帮助。我在数据集中有一个带有“ 7251.1 m”的varcher2列,我需要将其转换为数字7251.10

欢呼

2 个答案:

答案 0 :(得分:1)

我想你想要

select to_number(regexp_substr(col, '^[0-9]+[.]?[0-9]*'))

默认情况下,Oracle不会打印出两位小数。如果需要特定格式,可以将其转换回字符串。

答案 1 :(得分:1)

我将使用\b\d+(?:\.\d+)?\b的规范正则表达式模式。对于Oracle regex,没有正式的词边界,但是我们仍然可以模拟它:

SELECT TO_NUMBER(REGEXP_SUBSTR(val, '(^|\s)\d+(\.\d+)?(\s|$)'))
FROM yourTable;

Demo

相关问题