业务表 tabl_a(a1 number,a2 varchar2(100))目前的值是 11  1,1,2,3,4,5,6,7--这个长度可能不固定我想拆分成为11  1
11  1
11  2
11  3
11  4
11  5
11  6 
11  7
如何实现呢????U

解决方案 »

  1.   

    用substr 和instr函数  instr可以取到第一个,和最后一个,的位置 
      

  2.   

    select * from table(splitstr('1,1,2',','));
      

  3.   

    用regexp_substr结合正则:
    select sub.a1, sub.a2 from
    (select a1,regexp_substr(a2, '[^,]+', 1, level) a2 from tabl_a
    connect by level < 20)sub
    where sub.a2 is not null;
      

  4.   

    connect by level < 20
    还需要再处理一下,考虑一下,如何把level写活一些。
      

  5.   

    嗯。是呀,写这个SQL的时候,我想到了20是死的。但是没想到解决方案