我A.FIELD
输出以下格式:
9:30AM - 12:50PM AbCdEfGhIj XY-000
我试图找出一种方法来根据指定的分隔符获取每个单独的值。
:
之前的所有整数(例如:9
)-
或第二个空格之后,第二个:
之前的所有整数(例如:12
)9:30AM - 12:50PM
)AbCdEfGhIj
)现在我能够得到以下内容:
REGEXP_SUBSTR(A.FIELD, '\S*$') -- XY-000
REGEXP_SUBSTR(A.UP_CLASS_MEETINGS, '[^ ]+', 1) -- 9:30AM
我的第二个例子是9:30AM
最好的方法吗?它有缺陷吗?
如何最好地利用SUBSTR
,INSTR
和/或REGEXP_SUBSTR
?
答案 0 :(得分:5)
regexp_substr(a.field, '(\d+):', 1, 1, '', 1),
regexp_substr(a.field, '(\d+):', 1, 2, '', 1),
regexp_substr(a.field, '\S+(\s|-)+\S+'),
regexp_substr(a.field, '\S+(\s|-)+\S+\s+(.*)\s+\S+$', 1, 1, '', 2)