zoukankan      html  css  js  c++  java
  • 【经验】【ORACLE】从字符串中截取其中的数字

    方法一:

    如果Oracle版本不是太低的话,使用 正则表达式函数 REGEXP_SUBSTR 处理。

    REGEXP_SUBSTR有5个参数,分别是:
    第一个是输入的字符串
    第二个是正则表达式
    第三个是标识从第几个字符开始正则表达式匹配。(默认为1)
    第四个是标识第几个匹配组。(默认为1)
    第五个是是取值范围:
    i:大小写不敏感;
    c:大小写敏感;
    n:点号 . 不匹配换行符号;
    m:多行模式;
    x:扩展模式,忽略正则表达式中的空白字符。

    例如:
    SELECT REGEXP_SUBSTR('ABC123BCD456','[0-9]+') FROM DUAL;
    --返回123

    SELECT REGEXP_SUBSTR('ABC123BCD456','[0-9]+',6) FROM DUAL;
    --返回3

    SELECT REGEXP_SUBSTR('ABC123BCD456','[0-9]+',7) FROM DUAL;
    --返回456

    SELECT REGEXP_SUBSTR('ABC123BCD456','[0-9]+',1,2) FROM DUAL;
    --返回456

    方法二:

    使用方法一只能截取其中其中的一段数字,如果想截取字符串中的所有数据,可以使用translate函数实现,具体使用方法如下:

    select translate('&str' , '0123456789' || '&str' , '0123456789') from dual;

    translate函数语法是TRANSLATE(string,from_str,to_str),

    其功能是返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE 是 REPLACE 所提供的功能的一个超集。如果 from_str 比 to_str 长,
    那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。to_str 不能为空。Oracle 将空字符串解释为 NULL,并且如果TRANSLATE
    中的任何参数为NULL,那么结果也是 NULL。
  • 相关阅读:
    HDU2027 统计元音 一点点哈希思想
    湖南工业大学第一届ACM竞赛 数字游戏 字符串处理
    湖南工业大学第一届ACM竞赛 我素故我在 DFS
    HDU3293sort
    HDU2082 找单词 母函数
    HDU1018 Big Number 斯特林公式
    湖南工业大学第一届ACM竞赛 分糖果 位操作
    UVA 357 Let Me Count The Ways
    UVA 147 Dollars
    UVA 348 Optimal Array Multiplication Sequence
  • 原文地址:https://www.cnblogs.com/AzikPhil/p/note_oracle_exp.html
Copyright © 2011-2022 走看看