create table test (col1 varchar2(20));
insert into test values ('1;2;3');
select col1 from
(select substr(t.ca,instr(t.ca, ';', 1, c.lv) + 1,instr(t.ca, ';', 1, c.lv + 1) - (instr(t.ca, ';', 1, c.lv) + 1)) AS col1
from
(select ';' || col1 || ';' AS ca,length(col1 || ';') - nvl(length(REPLACE(col1, ';')), 0) AS cnt FROM test) t,
(select LEVEL lv from dual CONNECT BY LEVEL <= 100) c where c.lv <= t.cnt);
è²ä¼¼åªè½æ¾å°ä¸ä¸ªåä¸
温馨提示:答案为网友推荐,仅供参考