注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Oracle >> 性能调优 >> Oracle正文

数据库中如何使用SQL查询连续号码段

文章来源:eygle 作者:佚名 更新时间:2007-6-15 【 】 【加入收藏

在ITPUB上有一则非常巧妙的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 


ITPUB上的朋友给出了一个非常巧妙的答案:

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


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

  • 上一篇Oracle:

  • 下一篇Oracle:
  • 最 新 热 门
     教你正确的理解什么是数据库恢复
     轻松理解SCN与TimeStamp的相互转换
     Oracle数据库频繁归档问题的解决办法
     用OMS来实现Oracle数据备份
     ORA-00257错误问题的解决方法
     用dbv和RMAN检查数据文件中的坏块
     Oracle数据库中汉字长度的问题
     为何执行drop表操作后数据库无法启动
     Oracle中如何获得当前数据库的SCN值
     Oracle10gR2的ORA-06512 OLAP错误
    最 新 推 荐
     使用索引跳跃式扫描以提高查询速度
     保持Oracle数据库优良性能
     Oracle数据库性能完全保护
     解决CPU高度消耗(100%)的数据库问题
     使用排序哈希簇来加提高查询速度
     从纵横五个方面精细优化你的Oracle
     Oracle数据库手工扩大表空间三步走
     Oracle分区功能提高应用程序性能
     提高Oracle的查询统计速度方法简介
     Oracle DBA优化数据库性能心得体会
    相 关 文 章

    教你正确的理解什么是数据库恢复
    Oracle数据库频繁归档问题的解决办法
    用OMS来实现Oracle数据备份
    用dbv和RMAN检查数据文件中的坏块
    Oracle数据库中汉字长度的问题
    为何执行drop表操作后数据库无法启动
    Oracle中如何获得当前数据库的SCN值
    Oracle数据库中7个疑难问题的解决方法
    用Rman的Plus archvielog简化数据库备份
    择善而从 ETL还是数据联合?

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用