快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

淄博惠仲信息咨询_学习tSQL查询连续号码段的巧妙解法tSQL



在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 00淄博惠仲信息咨询000005

2014 00000007 00000009

巧淄博惠仲信息咨询思妙想,就在一念之间。

您可能还会对下面的文章感兴趣: