SQL查询连续号码段实现实例

网络整理 - 07-27

  下文将教您在数据库中如何使用SQL查询连续号码段的方法,供您参考,如果您对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

  (第二个字段内可能是连续的数据,可能存在断点。)

  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 查询结果:

  2014,00000001,00000005

  2014,00000009,00000007

  2013,00000120,00000122

  2013,00000124,00000125