oracle 去掉字符,剩下数字

一个字段的值有:字母+汉字+数字+符号,只保留数字有什么函数没有。

实现的方法和详细的操作步骤如下:

1、第一步,新建一个测试表,见下图,转到下面的步骤。

2、第二步,执行完上面的操作之后,将测试数据插入,见下图,转到下面的步骤。

3、第三步,执行完上面的操作之后,查询表中数据,可以发现字段中带“-”字符,见下图,转到下面的步骤。

4、第四步,执行完上面的操作之后,编写sql,把字段中的字符‘-’去掉,代码见下图。这样,就解决了这个问题了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-24
Oracle 正则表达式函数-REGEXP_REPLACE 使用例子
http://hi.baidu.com/wangzhiqing999/blog/item/267c6dfefc700fcdb48f31c0.html

字母+汉字+数字+符号,只保留数字 只保留数字 == 把 字母+汉字+符号 替换为空 ''

替换数字

这个是把 字符串里面的 数字 替换为 'QQQ'
SELECT
REGEXP_REPLACE (a,'[0-9]+','QQQ') AS A
FROM
test_reg_substr;

你只需要稍微修改, 把 非数字的, 替换为 '' 应该就可以了。
SELECT
REGEXP_REPLACE (a, '[^0-9]+', '') AS A
FROM
test_reg_substr;

差不多是这个样子的。本回答被提问者采纳
第2个回答  2018-03-28
select translate( 字段 , 保留字段||字段 , 保留字段 ) from dual;
第3个回答  2011-03-18
正则表达式 regexp_like 这个函数貌似是10G以上才支持追问

怎么只保留数字呢

追答

regexp_like(v_USER_MOBILE,'^1[3|5|8][0-9]\d{4,8}$') --判断手机号是否合法 这是我知道一个判断手机号的正则表达式,你修改一下应该能用来判断数字,你应该懂正则表达式吧 我有点忘了,你搞一下应该没问题

相似回答