比如说有个字符串‘1,2,3’,我现在要分割成 ‘1’,‘ 2’,‘ 3’。如何实现呢,希望有源码,用sql实现,字符串不一定就是‘1,2,3’,也肯能是‘1,12,13,14’,不定的,希望是通用的代码

解决方案 »

  1.   

    declare
    p_str  varchar2(1000);
    l_str  varchar2(3000);
    begin
      p_str:='1,2,3,4,5'; 
      l_str:=''''||replace(p_str,',',''',''')||'''';
      dbms_output.put_line(l_str);
    end;
      

  2.   

    在另外一个贴子你给你回复过了啊:
    select regexp_substr('1,12,13,14', '[^,]+', 1, n)
    FROM dual left join 
    (select level,rownum n from dual connect by level < 10) on 1=1
    WHERE regexp_substr('1,12,13,14', '[^,]+', 1, n) IS not NULL;
    字符串换成什么样子的,都可以分隔出来啊。
      

  3.   

    select regexp_substr('1,12,13,14', '[^,]+', 1, level)
      from dual
    connect by level <=
               length('1,12,13,14') - length(replace('1,12,13,14', ',', '')) + 1