有一个表phonearea,结构如下:
province prefix
00000001
00000002
00000003
00000004
00000005
00000007
00000008
00000009
00000120
00000121
00000122
00000124
00000125
第一个字段是省份代码,第二个字段是分配的不同的手机号码段的前缀,第二个字段内可能是连续的数据,可能存在断点。
怎样能根据省份分组,把相同省份的连续的号码段合并起来,结果就像下面的这样:
,00000001,00000005
,00000009,00000007
,00000120,00000122
,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,
出处: /96sd2/archive//09/06/143091.html