在oracle数据库中一字段存在汉字和数字,取数字部分

Posted 不平凡#i

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在oracle数据库中一字段存在汉字和数字,取数字部分相关的知识,希望对你有一定的参考价值。

方法一:regexp_replace

select t.achive_name,regexp_replace(t.achive_name,‘[^0-9]‘) from T_ARCHIVE_CONTENT t where t.plan_id=‘402881ef5f702d62015f7128f2760089‘;

标签:regexp_replace 正则 函数的参数说明:
一共6个参数,分别是
1、待匹配的字符串
2、正则表达式
3、替换的字符
4、标识从第几个字符开始正则表达式匹配。(默认为1)
5、标识第几个匹配组。(默认为全部都替换掉)
6、取值范围:

方法二:regexp_substr

select t.achive_name,regexp_substr(t.achive_name,‘[0-9]+‘) from T_ARCHIVE_CONTENT t ;

方法三:TRANSLATE(‘待替换字符串‘, ‘1234567890‘, ‘ ‘)

即:把待替换字符串中的数字替换为‘’

select t.achive_name,TRIM(TRANSLATE(t.achive_name, trim(TRANSLATE(t.achive_name, ‘1234567890‘, ‘ ‘)), ‘ ‘))
from T_ARCHIVE_CONTENT t ;

方法四:截取字符串  substr(str,0,2)

select t.achive_name,substr(t.achive_name,0,2) from T_ARCHIVE_CONTENT t ;

substr(string,start,length)

参数:

string - 指定的要截取的字符串

start - 必需,规定在字符串的何处开始

正数 - 在字符串的指定位置开始

负数 - 在从字符串结尾的指定位置开始

0 - 在字符串中的第一个字符处开始

length - 可选,指定要截取的字符串长度,缺省时返回字符表达式的值结束前的全部字符。

 











以上是关于在oracle数据库中一字段存在汉字和数字,取数字部分的主要内容,如果未能解决你的问题,请参考以下文章

如何查出在oracle 表中的某个字段中符合以下要求:包括除汉字、数字、字母、中画线、括弧外的其它字符

oracle sql语句中,有没有能够将结果集中数字替换成汉字的函数?

Oracle 判断表字段里字符串是不是含有汉字

perl中每行有多个要匹配的字符串怎么取?

数据库保留关键字

oracle 去掉字符,剩下数字