轉 SQL查詢連續號碼段的巧妙解法
在ITPUB上有一則非常巧妙的SQL技巧,學習一下,記錄在這裡。
[@more@]最初的問題是這樣的:
我有一個表結構,
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
巧思妙想,就在一念之間。
ITPUB其他參考連結如下:
http://blog.itpub.net/post/5042/27936
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10130206/viewspace-1038071/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL 如何查詢連續上漲 N 次的記錄SQL
- SQL連線查詢SQL
- 查詢手機號碼是否支援攜號轉網的API介面API
- FastHook——實現.dynsym段和.symtab段符號查詢ASTHook符號
- sql 連線查詢例項(left join)三表連線查詢SQL
- 一個SQL查詢連續三天的流量100以上的資料值【SQql Server】SQLServer
- 【SQL】Oracle查詢轉換之 OR用法SQLOracle
- 連續段DP
- SQL查詢的:子查詢和多表查詢SQL
- SQL實戰從在職到離職(1) 如何處理連續查詢SQL
- 【SQL】Oracle查詢轉換之物化檢視查詢重寫SQLOracle
- 「複製帶隨機指標的連結串列」的一個很巧妙解法隨機指標
- 20201214]查詢隱式轉換的sql語句.txtSQL
- [20201214]查詢隱式轉換的sql語句.txtSQL
- 第二章 :查詢與排序-------二分查詢的遞迴解法排序遞迴
- 【SQL】Oracle查詢轉換之謂詞推送SQLOracle
- 使用SSMS連線和查詢 SQL Server 例項SSMSQLServer
- T-SQL——關於跨庫連線查詢SQL
- SQL Sever 實現查詢超過自己經理工資的員工(自連線查詢)SQL
- SQL--查詢SQL
- SQL 聚合查詢SQL
- 原生SQL查詢SQL
- [轉帖]SQL Server簡潔查詢正在執行的程序SQLServer
- 【SQL】Oracle查詢轉換之檢視合併SQLOracle
- SQL Server中Table字典資料的查詢SQL示例程式碼SQLServer
- JPA時間段查詢
- MySQL查詢時間段MySql
- go 連線資料庫 - GORM學習 - sql查詢Go資料庫ORMSQL
- 【學習】SQL基礎-006-多表連線查詢SQL
- SQL連續查詢問題擴充—記上海拼多多非技術崗面試真題SQL面試
- 「SAP技術」SAP WM 如何根據TR號碼查詢TO號碼?
- SQL的基礎查詢案例SQL
- SQL 查詢中的 NULL 值SQLNull
- SQL 複雜查詢SQL
- sql常用查詢命令SQL
- SQL高階查詢SQL
- SQL查詢總結SQL
- 連線查詢
- 【記錄】sqlserver列轉行查詢 並將查詢結果用逗號分隔開SQLServer