ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle开发 » 求句sql

标题: [SQL] 求句sql
离线 wqtl_357
初级会员



精华贴数 0
个人空间 0
技术积分 12 (78154)
社区积分 0 (790129)
注册日期 2006-3-9
论坛徽章:0
      
      

发表于 2008-7-8 17:38 
求句sql

比如有个表 tab_test(num number), 里面存放着1,2,3,4,....10000这些数据。
现在的问题是:其中部分数据丢失了,要求写句sq求最大连续数
结果格式如下:
count(*) num1 num2
---------   ------  -------
    10       2         11


只看该作者    顶部
离线 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5663 (233)
社区积分 46105 (16)
注册日期 2007-9-10
论坛徽章:17
奥运纪念徽章NBA大富翁萤石祖母绿紫水晶红宝石
海蓝宝石蓝锆石月度论坛发贴之星金色在线徽章2008年新春纪念徽章 

发表于 2008-7-8 17:43 
论坛上搜索一下吧,相关的有的


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章

新光饰品直营店:
http://shop36405681.taobao.com/
各位XDJM,帮忙提高下点击率哈
只看该作者    顶部
离线 wqtl_357
初级会员



精华贴数 0
个人空间 0
技术积分 12 (78154)
社区积分 0 (790129)
注册日期 2006-3-9
论坛徽章:0
      
      

发表于 2008-7-8 19:41 
看来比较麻烦哈


只看该作者    顶部
离线 eyunbo
一般会员


精华贴数 0
个人空间 0
技术积分 390 (5006)
社区积分 161 (2657)
注册日期 2005-8-31
论坛徽章:0
      
      

发表于 2008-7-9 06:14 
涉及跨行的操作最好写程序解决。

[ 本帖最后由 eyunbo 于 2008-7-9 06:16 编辑 ]


__________________
只看该作者    顶部
离线 grubbyoo
▃▃,~


来自 夕阳小画
精华贴数 1
个人空间 6
技术积分 1506 (1120)
社区积分 335 (1765)
注册日期 2007-3-1
论坛徽章:22
生肖徽章2007版:蛇2008北京奥运纪念徽章:射箭2008北京奥运纪念徽章:自行车2008北京奥运纪念徽章:手球2008北京奥运纪念徽章:射箭 
      

发表于 2008-7-9 09:35 
select *
from
(select  max(n)-min(n),min(n),max(n) from youtable
group by n-rownum
order by 1 desc )
where rownum=1


__________________
走到哪里才不是过客
只看该作者    顶部
离线 mychary
高级会员



来自 合肥
精华贴数 0
个人空间 0
技术积分 6930 (184)
社区积分 161 (2655)
注册日期 2003-9-18
论坛徽章:10
ITPUB元老会员2007贡献徽章会员2006贡献徽章授权会员生肖徽章2007版:马2008北京奥运纪念徽章:柔道
2008北京奥运纪念徽章:花样游泳数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星  

发表于 2008-7-9 09:47 


QUOTE:
原帖由 grubbyoo 于 2008-7-9 09:35 发表
select *
from
(select  max(n)-min(n),min(n),max(n) from youtable
group by n-rownum
order by 1 desc )
where rownum=1




只看该作者    顶部
在线/呼叫 sunfly1983
初级会员


精华贴数 0
个人空间 0
技术积分 894 (2106)
社区积分 1102 (895)
注册日期 2006-10-14
论坛徽章:11
生肖徽章2007版:猪     
      

发表于 2008-7-9 09:57 
不错,很强很简练!学习了!


只看该作者    顶部
离线 gthboy
万事如意


精华贴数 1
个人空间 0
技术积分 1769 (935)
社区积分 2 (29381)
注册日期 2006-6-25
论坛徽章:2
2008北京奥运纪念徽章:柔道     
      

发表于 2008-7-9 10:02 
这都能想出来,思维不是一般的强啊!!


__________________
只看该作者    顶部
离线 mychary
高级会员



来自 合肥
精华贴数 0
个人空间 0
技术积分 6930 (184)
社区积分 161 (2655)
注册日期 2003-9-18
论坛徽章:10
ITPUB元老会员2007贡献徽章会员2006贡献徽章授权会员生肖徽章2007版:马2008北京奥运纪念徽章:柔道
2008北京奥运纪念徽章:花样游泳数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星  

发表于 2008-7-9 10:03 
SQL> insert into t(id) select rownum from tab;

已创建58行。

SQL> commit;

提交完成。

SQL> delete from t where id in (10,52);

已删除2行。

SQL> commit;

提交完成。

SQL> select *
  2  from
  3  (select  max(id)-min(id),min(id),max(id) from t
  4  group by id-rownum
  5  order by 1 desc )
  6  where rownum=1
  7  /

MAX(ID)-MIN(ID)    MIN(ID)    MAX(ID)
--------------- ---------- ----------
             40         11         51

SQL> insert into t(id) values(10);

已创建 1 行。

SQL> select *
  2  from
  3  (select  max(id)-min(id),min(id),max(id) from t
  4  group by id-rownum
  5  order by 1 desc )
  6  where rownum=1
  7  /

MAX(ID)-MIN(ID)    MIN(ID)    MAX(ID)
--------------- ---------- ----------
             40         11         51

SQL> 好像有bug


只看该作者    顶部
离线 mychary
高级会员



来自 合肥
精华贴数 0
个人空间 0
技术积分 6930 (184)
社区积分 161 (2655)
注册日期 2003-9-18
论坛徽章:10
ITPUB元老会员2007贡献徽章会员2006贡献徽章授权会员生肖徽章2007版:马2008北京奥运纪念徽章:柔道
2008北京奥运纪念徽章:花样游泳数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星  

发表于 2008-7-9 10:14 
SQL> ed
已写入文件 afiedt.buf

  1  select *
  2  from
  3  (select  max(id)-min(id),min(id),max(id) from (select * from t order by id)
  4  group by id-rownum
  5  order by 1 desc )
  6* where rownum=1
SQL> /

MAX(ID)-MIN(ID)    MIN(ID)    MAX(ID)
--------------- ---------- ----------
             50          1         51

SQL> 这样结果就正确了


只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问