这种数据我想提取的是有百分号的就提取百分号前面的数字没有百分号的就不提取
https://help.finereport.com/doc-view-2363.html
看看这个提取字符串中的数字
select regexp_replace(substr('dafdsf548%sdf',1,instr('dafdsf548%sdf','%')),'[^0-9]','') from dual;
instr()判断百分号的位置,
substr()截取首位至百分号位置的字符串
regexp_replace()对截取的字符串获取数字
正则以%结尾
SELECT REGEXP_SUBSTR (字段, '[0-9]+(\.[0-9]){0,1}%') as test_name FROM 表;