在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上的朋友给出了一个非常巧妙的答案:
SELECTb.fphm,MIN(b.kshm)Start_HM,MAX(b.kshm)End_HM
FROM(SELECTa.*,TO_NUMBER(a.kshm-ROWNUM)cc
FROM(SELECT*
FROMt
ORDERBYfphm,kshm)a
)b
GROUPBYb.fphm,b.cc

更多相关文章

  1. 巧妙均分TabLayout tab
  2. 巧妙均分TabLayout tab
  3. LeetCode go
  4. 华裔教授发现二次方程「极简」解法:丢掉公式,全球教科书可能都要改
  5. 关于一个NBA球队连续夺冠的SQL查询问题,解法很精妙~
  6. 巧妙避坑篇——测试代码时你会犯的 10个错误
  7. android查看input设备
  8. android keyguard锁屏程序不能全屏显示
  9. 开发板AN4.3平台的四色键无效的解法

随机推荐

  1. binder编译error
  2. Android 系统级应用守护进程
  3. Android 抽屉导航
  4. Android官方入门文档[4]启动另一个Activi
  5. WebView:Android-H5交互
  6. 梳理uid、userid及UserHandle概念
  7. Android(安卓)安全攻防
  8. Android7.0升级版本适配问题
  9. TextView 不用 ScrollViewe 也可以滚动
  10. Android 两个可拖动的SeekBar 两点拖动