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
在网上查找到了解决方法:
出处:http://www.blogjava.net/96sd2/archive/2007/09/06/143091.html
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
相关文章推荐
- Oracle 联接查询,字表多行字段合并为一行,以逗号分隔的查询SQL
- 查询Oracle sql语句中绑定变量值的方法
- 【SQL】Oracle分页查询的三种方法
- oracle―SQL技巧之(一)连续记录查询sql案例测试
- Hibernate createSQLQuery 查询Oracle char类型结果为一个字符解决方法汇总
- SQL oracle 用rownum方法查询最近更新的n条数据
- oracle 基础SQL语句 多表查询 子查询 分页查询 合并查询 分组查询 group by having order by
- 【SQL】Oracle分页查询的三种方法
- Oracle中的SQL分页查询原理和方法详解
- SQL查询连续号码段的巧妙解法
- SQL、MySQL、Oracle、 Sqlite、Informix数据库查询指定条数数据的方法
- PL/SQL中查询Oracle大数(17位以上)时显示科学计数法的解决方法
- Oracle中的SQL分页查询原理和方法详解
- 【SQL】Oracle分页查询的三种方法
- 解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(4)
- ORACLE 的SQL查询连接方法
- SQL查询连续号码段
- 如何sql查询出连续号码段 (单号连续性检查)
- 解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(3)
- 学习-SQL查询连续号码段的巧妙解法