oracle  PL/SQL 里面两个字段值:
start_card            end_card
4512000812070016501 4512000812070016505
怎么写为一个字段:如下面例子
card
4512000812070016501
4512000812070016502
4512000812070016503
4512000812070016504
4512000812070016505
start_card            end_card
085613110021790301  085613110021790303
怎么写为一个字段:如下面例子
card
085613110021790301
085613110021790302
085613110021790303

解决方案 »

  1.   


    with t as(
    select '4512000812070016501' start_card, '4512000812070016505' end_card from dual
    )
    select to_char(start_card+rownum-1) from t connect by rownum<end_card-start_card+14512000812070016501
    4512000812070016502
    4512000812070016503
    4512000812070016504
    4512000812070016505
      

  2.   

    connect by
    楼上大神 这个怎么用的
      

  3.   


    试着做了一个,等待高手更佳的答案-- 测试数据
    WITH tmp AS
    (
         SELECT '4512000812070016501' n1, '4512000812070016505' n2 FROM dual
          union all
         SELECT '1' n1, '10' n2 FROM dual
          union all
         SELECT '5' n1, '8' n2 FROM dual
    )-- SQL
    SELECT DISTINCT n1,n2
                    ,to_char(n1 + LEVEL - 1,'9999999999999999999') 转换结果
        FROM tmp a
          connect by LEVEL <= n2 - n1 + 1
        ORDER BY n1,n2;