首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

延续的数字取中断的编写思路,希望有更好的方式

2013-01-19 
连续的数字取中断的编写思路,希望有更好的方式需求数据如下:怎样查询出以下数据式?0004 ---00060009 ---00

连续的数字取中断的编写思路,希望有更好的方式

需求数据如下:

延续的数字取中断的编写思路,希望有更好的方式

怎样查询出以下数据格式?0004 ---00060009 ---00180021 ---0021

数据准备:
 SELECT O.NUM,P.NUM FROM(SELECT LPAD(TO_NUMBER(A.NUM)+1, LENGTH(A.NUM), 0) AS NUM,    RANK() OVER(ORDER BY A.NUM) AS NG  FROM FOO A WHERE NOT EXISTS (SELECT 1 FROM FOO B WHERE TO_NUMBER(A.NUM) + 1 = TO_NUMBER(B.NUM)) ) O,( SELECT LPAD(TO_NUMBER(A.NUM)-1, LENGTH(A.NUM), 0) AS NUM,    RANK() OVER(ORDER BY A.NUM) AS NG  FROM FOO A WHERE NOT EXISTS (SELECT 1 FROM FOO B WHERE TO_NUMBER(A.NUM) - 1 = TO_NUMBER(B.NUM)) )P WHERE O.NG+1 = P.NG

   得到的结果:  0004 0006  0009 0018  0021 0021
这种方式符合用户的要求,但是有没有更好的方式呢?希望能够抛砖引玉......

1楼TravyLee4天前 12:36
http://blog.csdn.net/travylee/article/details/7392436nn间断和孤岛问题的解决思路
Re: ziwen004天前 12:48
回复TravyLeen谢谢分享,我会好好研究一下

热点排行