您的位置:首页 > 数据库 > Oracle

ORACLE SQL: 查询连续号码段并合并的方法

2012-01-13 12:19 417 查看
有一个表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


出处:http://www.blogjava.net/96sd2/archive/2007/09/06/143091.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: