正在寻求有关REGEXP的帮助。我在数据集中有一个带有“ 7251.1 m”的varcher2列,我需要将其转换为数字7251.10
欢呼
答案 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;