學習-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
※以上資訊由網路資料整理而成,若有遺誤概以來源為準,本站不負任何相關責任。
※如果您認為網站上資訊侵犯了您的版權,請告訴我們
按這裡,我們將即時將您的版權資料移除。