posts - 60, comments - 116, trackbacks - 1, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          ORACLE SQL: 查詢連續號碼段并合并的方法

          Posted on 2007-09-06 10:24 匪客 閱讀(2256) 評論(1)  編輯  收藏 所屬分類: 數據庫

          有一個表phonearea,結構如下:

          province?? prefix
          2014?? ????00000001
          2014???? ? 00000002
          2014???? ? 00000003
          2014???? ? 00000004
          2014???? ? 00000005
          2014???? ? 00000007
          2014???? ? 00000008
          2014???? ? 00000009
          2013???? ? 00000120
          2013??? ?? 00000121
          2013??? ?? 00000122
          2013???? ? 00000124
          2013 ????? 00000125

          第一個字段是省份代碼,第二個字段是分配的不同的手機號碼段的前綴,第二個字段內可能是連續的數據,可能存在斷點。

          怎樣能根據省份分組,把相同省份的連續的號碼段合并起來,結果就像下面的這樣:

          2014,00000001,00000005
          2014,00000009,00000007
          2013,00000120,00000122
          2013,00000124,00000125

          在網上查找到了解決方法:

          SELECT b.province, MIN (b.prefix) Start_HM, MAX (b.prefix) End_HM
          ? FROM
          ??? (SELECT a.*, TO_NUMBER(a.prefix - ROWNUM) cc FROM (SELECT * FROM phonearea t ORDER BY province, prefix) a) b
          ? GROUP BY b.province, b.cc


          評論

          # re: ORACLE SQL: 查詢連續號碼段并合并的方法  回復  更多評論   

          2014-12-30 14:12 by 孔桂花
          求方法

          主站蜘蛛池模板: 甘肃省| 孟州市| 庐江县| 高邑县| 宝清县| 胶州市| 绥江县| 商河县| 曲阳县| 兴国县| 财经| 修水县| 华容县| 邵东县| 阜城县| 呼和浩特市| 高台县| 宜兰县| 尼木县| 石河子市| 轮台县| 麻栗坡县| 宜章县| 绍兴市| 文安县| 青龙| 自贡市| 大邑县| 河北区| 新乡县| 藁城市| 申扎县| 通海县| 新巴尔虎右旗| 政和县| 布拖县| 汉阴县| 灌南县| 鹤山市| 崇州市| 华容县|