top
Loading...
學習-SQL查詢連續號碼段的巧妙解法

在ITPUB上有一則非常巧妙的SQL技巧,學習一下,記錄在這里。

最初的問題是這樣的:

我有一個表結構,









fphm,kshm2014,000000012014,000000022014,000000032014,000000042014,000000052014,000000072014,000000082014,000000092013,000001202013,000001212013,000001222013,000001242013,00000125

(第二個字段內可能是連續的數據,可能存在斷點。)

怎樣能查詢出來這樣的結果,查詢出連續的記錄來。

就像下面的這樣?

2014,00000001,000000052014,00000009,000000072013,00000120,000001222013,00000124,00000125

ITPUB上的朋友給出了一個非常巧妙的答案:

SQL> SELECT b.fphm, MIN (b.kshm) Start_HM, MAX (b.kshm) End_HM2 FROM (SELECT a.*, TO_NUMBER (a.kshm - ROWNUM) cc3 FROM (SELECT *4 FROM t5 ORDER BY fphm, kshm) a) b6 GROUP BY b.fphm, b.cc7 /FPHM START_HM END_HM---------- -------- --------2013 00000120 000001222013 00000124 000001252014 00000001 000000052014 00000007 00000009

巧思妙想,就在一念之間。

(T114)

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗