with t1 as ( select 1 c1,'张三|手机号码|地址<br>李四|手机号码|地址<br><br>王五|手机号码|地址<br>' c2 from dual ) select substr(c2,1,instr(c2,'|',1)-1) from ( select distinct c1,replace(regexp_substr(c2,'[^<br>]+',1,level),'<br>',' ') c2 from t1 connect by level<=length(c2)-length(replace(c2,'<br>',''))+1 order by c1 )