with a as (select 'ABC,AA,AD,ABD,JI,CC,ALSKD,ALDKDJ' id from dual)select regexp_substr(id,'[^,]+',1,rownum) id from aconnect by rownum <= length(regexp_replace(id,'[^,]+')) drop table ZDL1; CREATE TABLE ZDL1 ( clientid VARCHAR(40), IDS VARCHAR(400) ); insert into zdl1 values('123','ABC,AA,AD,ABD,JI,CC,ALSKD,ALDKDJ,'); select * from ( with a as (select distinct clientid,ids from ZDL1) select clientid,regexp_substr(ids,'[^,]+',1,rownum) id from a connect by rownum <= length(regexp_replace(ids,'[^,]+')) ) t; 参照: https://www.cnblogs.com/gdzhong/p/4726315.html?tvd