Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > SQL查询连续号码段的巧妙解法
【标  题】:SQL查询连续号码段的巧妙解法
【关键字】:SQL
【来  源】:http://blog.csdn.net/annicybc/archive/2007/02/25/1514147.aspx

SQL查询连续号码段的巧妙解法

Your Ad Here
SELECT b.fphm, MIN (b.kshm) Start_HM, MAX (b.kshm) End_HM
FROM (SELECT a.*, TO_NUMBER (a.kshm - ROWNUM) cc
      
FROM (SELECT *
            
FROM t
            
ORDER BY fphm, kshm) a
    ) b
GROUP BY b.fphm, b.cc
 

在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上的朋友给出了一个非常巧妙的答案:

SELECT b.fphm, MIN (b.kshm) Start_HM, MAX (b.kshm) End_HM
FROM (SELECT a.*, TO_NUMBER (a.kshm - ROWNUM) cc
      FROM (SELECT *
            FROM t
            ORDER BY fphm, kshm) a
 ) b
GROUP BY b.fphm, b.cc

如何重新编译PLSQL中的无效对象或者指定的对象:【上一篇】
ORA-00600: internal error code, arguments: [4194], [42], [41], [], [], [], [], [] 解决方法:【下一篇】
【相关文章】
  • 如何重新编译PLSQL中的无效对象或者指定的对象
  • 在一些朋友的要求下,将以前写的SQL2分查找法通用分页存储过程算法 改成.net类实现
  • 菜鸟JSP数据库学习笔记之一:Tomcat配置JDBC连接MySQL
  • 使用asp.net 2.0和SQL SERVER 2005构建多层应用
  • Mysql Replication的安装和配置
  • 在C#程序中使用MYSQL数据库
  • MS SQL Server和Oracle的常用函数对比
  • MS-SQL游标的使用及理解
  • SqlServer CLR存储过程使用一例
  • windows+php+mysql+apache(wamp)安装配置问题
  • 【随机文章】
  • 文件上传下载
  • IP安全加密--IPSec
  • WinDump用法---Win平台下的Tcpdump
  • 计算机软件产品开发文件编制指南
  • WSRP——远程门户网站Web服务
  • 网络安全产品技术发展趋势(2)
  • 路由器能代替防火墙吗?
  • 利用jad破解.class文件
  • Linux下vsftp配置使用一点通
  • 超级多的linux镜象下载,泣血推荐。
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.