col NU for a4
--■■■正規表現を使わない方法■■■
select ColX,substr(NU,1,instr(NU,'-')-1) as NU
from (select ColX,
translate(ColX,'0' || translate(ColX,'a-0123456789','a'),'0') as NU
from (select 'B19-18' as ColX from dual
union select 'BC14-01' from dual
union select 'IC9-02' from dual
union select 'P9-02' from dual));
--■■■正規表現を使う方法(10g以降)■■■
select ColX,RegExp_Replace(ColX,'^[^0-9]*([0-9]*)\-.*$','\1') as NU
from (select 'B19-18' as ColX from dual
union select 'BC14-01' from dual
union select 'IC9-02' from dual
union select 'P9-02' from dual);