【问题标题】:Extract a number from a string after specific string in Oracle SQL [duplicate]从Oracle SQL中特定字符串之后的字符串中提取一个数字[重复]
【发布时间】:2016-08-24 14:17:23
【问题描述】:

我想从这个字符串中提取:FREQ=DAILY;BYDAY=MON,TUE,WED,THU,FRI;BYHOUR=7;BYMINUTE=0;BYSECOND=0 使用 Oracle pl/sql 的 'BYHOUR=' 字符串之后的数字。
它可以是 1 或 2 个字符长 (0-23)
最好使用 regex 正则表达式,但我从不流利地创建它们。

有人可以帮忙解释一下吗?

【问题讨论】:

    标签: regex oracle plsql oracle-sqldeveloper


    【解决方案1】:

    使用REGEXP_SUBSTR:

    SELECT REGEXP_SUBSTR(col, 'BYHOUR=(\d{1,2})')
    FROM yourTable
    

    【讨论】:

    • 谢谢,它成功了,但输出是:'BYHOUR=12'。是否可以在此语句中仅获取一个数字(使用正则表达式)还是必须使用 substr() 方法来获取它?
    • 我想你可以把它改成这个 REGEXP_SUBSTR(col, '(\d{1,2})',instr(col,'BYHOUR'))
    • @chris 查看重复问题的答案
    • 从表中选择 to_number(substr(REGEXP_SUBSTR(col, 'BYHOUR=(\d{1,2})'), 8))
    猜你喜欢
    • 2022-08-10
    • 2021-10-30
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    相关资源
    最近更新 更多