• 技术文章 >数据库 >mysql教程

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

    2016-06-07 17:57:12原创544

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

    在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
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:SQL Server连接中三个常见的错误分析 下一篇:SQL Server SQL Agent服务使用教程小结
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 怎么修改mysql服务路径• 怎么解决启动mysql的1069错误• 怎么判断mysql数据库是否存在• 一文掌握MySQL的存储过程• mysql中有嵌套查询语句吗
    1/1

    PHP中文网