【发布时间】:2016-01-30 20:07:23
【问题描述】:
我有一个包含以下值的输入列。
1.2%
111.00$
$100.00
aa
ss
预期输出
1.2
111.00
100.00
null
null
我正在尝试使用 REGEXP_REPLACE 并尝试替换每个不是数字或“。”的字符这样1.2% 就会变成1.2。
这是我尝试过的查询,但没有成功。
regexp_replace('%1.aa2', '[^[\d|\.]]', '')
谁能建议如何做到这一点?我做错了什么?我正在与 pl/sql 开发人员一起开发 Oracle 11.2 数据库。
【问题讨论】:
-
只需在模式中使用
[^\d.]+。 -
这不起作用,它替换了除“.”之外的所有内容。这是我使用的查询 select regexp_replace('%1.aa2', '[^\d.]+', '') from dual
-
我猜在这种情况下你也必须转义反斜杠。试试
\\d而不是\d。
标签: regex oracle11g regexp-replace regexp-substr