非常实用的,使用SQL查询连续号码段。(做计费系统或SP的兄弟经常会用到)

数据库中如何使用SQL查询连续号码段
在【Database吧】上有一则非常巧妙的SQL技巧,学习一下,记录在这里。

最初的问题是这样的:

我有一个表结构,
fphm,kshm
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

【Database吧】上的朋友给出了一个非常巧妙的答案:

SQL> SELECT b.fphm, MIN (b.kshm) Start_HM, MAX (b.kshm) End_HM
2 FROM (SELECT a.*, TO_NUMBER (a.kshm - ROWNUM) cc
3 FROM (SELECT *
4 FROM t
5 ORDER BY fphm, kshm) a) b
6 GROUP BY b.fphm, b.cc
7 /

FPHM START_HM END_HM
---------- -------- --------
2013 00000120 00000122
2013 00000124 00000125
2014 00000001 00000005
2014 00000007 00000009

巧思妙想,就在一念之间。

非常实用的,使用SQL查询连续号码段。(做计费系统或SP的兄弟经常会用到)...相关推荐

  1. oracle号码段拆开,学习-SQL查询连续号码段的巧妙解法

    学习-SQL查询连续号码段的巧妙解法 在ITPUB上有一则非常巧妙的SQL技巧,学习一下,记录在这里. 最初的问题是这样的:我有一个表结构, fphm,kshm 2014,00000001 2014, ...

  2. oracle查询号段是否重复,ORACLE SQL: 查询连续号码段并合并的方法

    有一个表phonearea,结构如下: province   prefix 2014       00000001 2014       00000002 2014       00000003 20 ...

  3. 学习-SQL查询连续号码段的巧妙解法--转载

    原文地址:http://www.eygle.com/archives/2006/09/sql_tips.html 我有一个表结构, fphm,kshm 2014,00000001 2014,00000 ...

  4. mysql 查询多个号段_数据库中如何使用SQL查询连续号码段(转载)

    转自:http://www.poluoluo.com/jzxy/200801/9937.html 在ITPUB上有一则非常巧妙的SQL技巧,学习一下,记录在这里. 最初的问题是这样的: 我有一个表结构 ...

  5. mysql 查询多个号段_SQL查询连续号码段实现实例

    下文将教您在数据库中如何使用SQL查询连续号码段的方法,供您参考,如果您对SQL查询方面感兴趣的话,不妨一看,对您会有所帮助. 有一个表结构, fphm,kshm 2014,00000001 2014 ...

  6. Mysql中查询连续一段时间内统计数据

    Mysql中查询连续一段时间内统计数据 在一次生产环境中遇到统计当前日期的前10天每天的订单量,一开始想到的就是根据日期进行分组统计,但在查询的时候会存在一个问题:有可能某一天没有订单交易,日期分组中 ...

  7. Hive sql : 查询连续登录天数

    查询连续登录天数 1.问题描述 2.在Hive中建表 3.查询最大连续登录天数 1.问题描述 目前有两列数据,分别是用户ID和用户登录的时间,现需要统计用户连续登录的最大天数,中间如有断开,则不算连续 ...

  8. mysql查询连续三天100以上_一个SQL查询连续三天的流量100以上的数据值【SQql Server】...

    题目 有一个商场,每日人流量信息被记录在这三列信息中:序号 (id).日期 (date). 人流量 (people).请编写一个查询语句,找出高峰期时段,要求连续三天及以上,并且每天人流量均不少于10 ...

  9. sql查询连续3天有交易记录的客户

    利用表的自关联查询 表A CUS_ID TXN_DT ID 1 20180101 1 2 20180101 2 3 20180101 3 1 20180102 4 2 20180102 5 2 201 ...

最新文章

  1. 离开大公司,我才发现世界多残酷
  2. 基于GPUImage的美颜BeautifyFace详细注释
  3. DOM-添加元素、节点
  4. python中dataframe导出文件_使用Python将Pandas DataFrame导出为PDF文件
  5. 会计记忆总结之三:会计等式与复式记账
  6. 用友软件工程IT应用研究院
  7. 基于RAF的一个小动画框
  8. win2K/win2003终端服务器超出最大允许连接数
  9. dom4j解析xml的简单实用
  10. 200个最常见的JAVA面试问题(附答案)
  11. [Tjoi2016Heoi2016]排序[01序列]
  12. python数字图像处理(4):图像数据类型及颜色空间转换
  13. 进程和线程的主要区别
  14. 学习OpenCV(2)OpenCV初探-2
  15. 助力Java初级程序员快速成长的营养书单
  16. 4.1期货每日早盘操作建议
  17. open judge 1.6.3
  18. 积水成渊:用github gist收藏你的代码片段
  19. 网易云音乐热评的规律,44万条数据告诉你
  20. chm打开秒退_CHM文件打开方式

热门文章

  1. java 字节流写入_Java之基于字节流文件的写入和读取
  2. 函数在区间连续可以推出什么_A-22 函数的点连续、单侧连续、区间连续
  3. 计算机文字录入教案,《文字录入》(1-4)教案.doc
  4. php资源文件html,nginx 同一域名下分目录配置显示php,html,资源文件
  5. python编译so_Mac上把python源文件编译成so文件
  6. eclipse输入中文乱码,问题已解决
  7. mysql显示nan_Python将dataframe连接到MySQL时出现NaN[mysqlconnector]
  8. c# 对象json互相转换_Go语言进阶之路(六):内置JSON库和开源库gjson
  9. 20200920:leetcode35周双周赛题解(上)
  10. 20190910:(leetcode习题)FizzBuzz