轉自:http://www.xmsc.com.cn/InfoView/Article_167308.html
在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 00000005
2014 00000007 00000009
巧思妙想,就在一念之間。
數據庫中如何使用SQL查詢連續號碼段
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Android學習筆記(一)——Activity基礎知識
Longder1989
2018-08-27 17:54:43
Linux系統下mysql中文亂碼問題
Longder1989
2018-08-27 17:54:23
MySQL新建用戶,授權,刪除用戶,修改密碼操作
Longder1989
2018-08-27 17:54:23
SQL SERVER常用函數
Longder1989
2018-08-27 17:54:23
sql 添加 刪除 判斷字段是否存在
iteye_6674
2018-08-27 17:44:35
關於多結果集的存儲過程的處理
iteye_6674
2018-08-27 17:44:33
java 調用SqlServer分頁存儲過程的,返回多個結果集
iteye_6674
2018-08-27 17:44:19
Access 2003 與 MS SQL 2000 [sql]
peterb
2018-08-27 17:07:38
Python連接數據庫查詢
niuhea
2018-08-27 17:04:26
Laravel 5.3+ 自動添加創建時間與更新時間詳解
EagleMaze
2018-08-27 16:52:01
MySQL 無法啓動 報錯1067
freetop_gl
2018-08-27 16:22:07
數據庫範式1NF,2NF,3NF,BCNF詳解
Adam_Arrows
2018-08-27 14:10:53