ITEM COUNT
---- -------
A001  3;
A002  2;
A003  0;上面是表的2个字段,怎样通过查询语句得到下面的结果ITEM XH
---- --
A001  1;
A001  2;
A001  3;
A002  1;
A002  2;

解决方案 »

  1.   

    游标循环判断插入零时表,然后统一取出成VIEW
      

  2.   


    --SQL:
    with temp 
    as
    (
    select 'A001' a,3 b from dual
    union all
    select 'A002',2 from dual
    union all
    select 'A003',0 from dual
    )
    select a,rn from temp,
    (select rownum rn from dual connect by rownum<4) a
    where b>0 and rn<=b
    order by a--result:
    A001 1
    A001 2
    A001 3
    A002 1
    A002 2
      

  3.   


    看了一下,确实可以。
    不过COUNT的值是不确定的。能改善一下不
      

  4.   

    你可以在程序端做处理!--取最大值
    select max(b) into l_b FROM tablename
    --传值进来
    select rownum from dual connect by rownum<'"& l_b &"'
      

  5.   

    with temp
    as
    (
    select item,count from page
    )
    select item,rn from temp, 
    (select  rownum rn from page connect by rownum<=count)
    where count>0 and rn <= count;
      

  6.   


    with t as
    (select '01' code,'1' id,'name1' name from dual union
     select '0101' code,'2' id,'name2' name from dual union
     select '0102' code,'3' id,'name3' name from dual union
     select '010203' code,'4' id,'name4' name from dual union
     select '02' code,'5' id,'name5' name from dual union
     select '0201' code,'6' id,'name6' name from dual union
     select '0202' code,'7' id,'name7' name from dual)
    select *
      from t
     start with code = '010203'
    connect by code = substr(prior code, 1, length(prior code) - 2);