varchar:BLAH:123:678
在第一个半列和第二个列之间需要值:123 最后半列后需要的值:678
答案 0 :(得分:2)
假设你总是只有两个':'
,这是没有正则表达式的解决方案,乍一看可能不那么优雅,但比正则表达式更快:
SELECT SUBSTR(
yourString,
INSTR(yourString, ':') + 1,
INSTR(yourString,':', 1, 2 )
- INSTR(yourString, ':') - 1
),
SUBSTR(
yourString,
INSTR(yourString, ':', 1, 2) +1
)
FROM (SELECT 'BLAH:123:678' AS yourString FROM DUAL)
答案 1 :(得分:0)
使用以下正则表达式:
SELECT REGEXP_SUBSTR ('BLAH:123:678', ':(\d+):', 1, 1, NULL, 1) first_val,
REGEXP_SUBSTR ('BLAH:123:678', '(\d+)$', 1, 1, NULL, 1) second_val
FROM DUAL
输出:
first_Val second_val
123 678