在oracle查询中拆分字符串

ros*_*ose 1 oracle split

我正在尝试从Oracle数据库表中获取电话号码.电话号码可以用逗号或"/"分隔.现在我需要拆分那些带有"/"或逗号的条目并获取第一部分.

Jan*_*cki 6

按照这种方法,

with t as (
  select 'Test 1' name from dual
  union
  select 'Test 2, extra 3' from dual
  union
  select 'Test 3/ extra 3' from dual
  union
  select ',extra 4' from dual
)
select
  name,
  regexp_instr(name, '[/,]') pos,
  case
    when regexp_instr(name, '[/,]') = 0 then name
    else substr(name, 1, regexp_instr(name, '[/,]')-1) 
  end first_part
from
  t
order by first_part
;
Run Code Online (Sandbox Code Playgroud)

替代文字