计算号段的方法
发布日期:2021-09-16 04:38:34 浏览次数:47 分类:技术文章

本文共 945 字,大约阅读时间需要 3 分钟。

以前在itpub看到这个帖子, 问题觉得有意思,记录一下
 
我有一个表结构,
 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
 
 SQL> spool aaa.log
SQL> set echo on
SQL> select * from t;
no rows selected
SQL> select * from t;
      FPHM       KSHM
---------- ----------
      2014          1
      2014          2
      2014          3
      2014          4
      2014          5
      2014          7
      2014          8
      2014          9
      2013        120
      2013        121
      2013        122
      FPHM       KSHM
---------- ----------
      2013        124
      2013        125
13 rows selected.
SQL> select b.fphm,min(b.kshm),max(b.kshm)
  2  from (
  3          select a.*,to_number(a.kshm-rownum) cc
  4          from (
  5                  select * from t order by fphm,kshm
  6          ) a
  7  )  b
  8  group by b.fphm,b.cc
  9  /
      FPHM MIN(B.KSHM) MAX(B.KSHM)
---------- ----------- -----------
      2013         120         122
      2013         124         125
      2014           1           5
      2014           7           9

转载地址:https://blog.csdn.net/wll_1017/article/details/47121497 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:11g数据库删除数据库节点增加数据库节点
下一篇:rac两节点数据库多了一组redo

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年03月29日 02时23分43秒