解决方案 »

  1.   

    WITH test AS(
    SELECT 2 st,5 ed FROM dual UNION ALL
    SELECT 4,7 FROM dual UNION ALL
    SELECT 1,3 FROM dual)
    SELECT DISTINCT TEST.ST, TEST.ED, ST + LEVEL - 1
      FROM TEST
    CONNECT BY ST + LEVEL - 1 <= ED
     ORDER BY st,ed
      

  2.   

    WITH test AS(
    SELECT 2 st,5 ed FROM dual UNION ALL
    SELECT 4,7 FROM dual UNION ALL
    SELECT 1,3 FROM dual)
    SELECT DISTINCT TEST.ST, TEST.ED, ST + LEVEL - 1
      FROM TEST
    CONNECT BY ST + LEVEL - 1 <= ED
     ORDER BY st,ed
    数据表中start 到end 的跨度不会超过5但是在有64条数据的时候 跑了2分钟还没有跑完
    真实数据大概在200 - 500 之间, 不能跑。。
      

  3.   

    WITH test AS(
    SELECT 2 st,5 ed FROM dual UNION ALL
    SELECT 4,7 FROM dual UNION ALL
    SELECT 1,3 FROM dual)
    SELECT DISTINCT TEST.ST, TEST.ED, ST + LEVEL - 1
      FROM TEST
    CONNECT BY ST + LEVEL - 1 <= ED
     ORDER BY st,ed
    数据表中start 到end 的跨度不会超过5但是在有64条数据的时候 跑了2分钟还没有跑完
    真实数据大概在200 - 500 之间, 不能跑。。
    我再想想吧,我才也发现好像确实有性能问题,数据集成基数增加,我还没找到原因