insert into b
select min(hm) kshm,max(hm) jshm from (select hm,(hm-row_number() over(order by hm)) part from a) group by part

解决方案 »

  1.   

    A表字段为号码,里面记录了每一个号码,且不重复,我想取其连续的号码放在B表中,B表字段为开始号码,结束号码。(如1,2,3,4,5,则取开始号码1,结束号码5放入B 表中)这里我想请教存储过程的写法,谢谢。
      

  2.   

    不支持分析函数就用下面
    insert into b
    select min(hm) kshm,max(hm) jshm from (select hm,(hm-rownum) part from (select hm from a order by hm)) group by part
      

  3.   

    我的思路,把a中hm减去按hm排序的行号:
    hm   行号   hm-行号
    1     1     0
    2     2     0
    4     3     1
    5     4     1
    6     5     1
    10    6     4
    11    7     4
    12    8     4
    13    9     4
    14    10    4
    然后按hm-行号分组,取最大和最小值kshm     jshm     hm-行号  
    1          2        0
    4          6        1
    10        14        4不知道明白没,1个sql肯定可以的