在Oracle SQL中的特定字符串之后从字符串中提取一个数字
问题描述:
我想从此字符串中提取:FREQ=DAILY;BYDAY=MON,TUE,WED,THU,FRI;BYHOUR=7;BYMINUTE=0;BYSECOND=0
使用Oracle pl/sql的'BYHOUR=
'字符串之后的数字。
它可以是1或2个字符长(0-23)
这可能是最好使用正则表达式的正则表达式,但我从来没有流利地创建它们。在Oracle SQL中的特定字符串之后从字符串中提取一个数字
有人可以帮忙解释吗?
答
使用REGEXP_SUBSTR
:
SELECT REGEXP_SUBSTR(col, 'BYHOUR=(\d{1,2})')
FROM yourTable
谢谢,它的工作,输出虽然是: 'BYHOUR = 12'。是否有可能在这个语句中只使用一个数字(使用正则表达式)还是必须使用substr()方法来获取它? –
我认为你可以改变它到这个REGEXP_SUBSTR(col,'(\ d {1,2})',instr(col,'BYHOUR')) – Chrisrs2292
@chris查看重复的问题的答案 – Bohemian