ITPUB论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: hhd_1976

请教查询语句的写法? [复制链接]

注册会员

中级会员

精华贴数
0
技术积分
392
社区积分
11
注册时间
2005-8-17
论坛徽章:
9
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53生肖徽章2007版:猪
日期:2009-03-10 21:17:25生肖徽章2007版:猴
日期:2009-03-10 21:23:27生肖徽章2007版:牛
日期:2009-03-10 21:26:49生肖徽章2007版:鸡
日期:2009-03-10 21:36:09ITPUB8周年纪念徽章
日期:2009-09-27 10:21:22祖国60周年纪念徽章
日期:2009-10-09 08:28:00
发表于 2006-4-24 21:46:43 |显示全部楼层
最初由 lastwinner 发布
[B]最简单的SQL,仅有一层嵌套
select distinct s+level-1 rlt from (select lag(n,1)over(order by n)+1 S, n-1 E from ttt) where E-S+1<>0 connect by level<=e-s+1; [/B]

这个方法确定不错~

使用道具 举报

注册会员

中级会员

精华贴数
0
技术积分
489
社区积分
1
注册时间
2006-3-21
论坛徽章:
1
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
发表于 2006-4-24 22:22:11 |显示全部楼层
佩服啊

使用道具 举报

注册会员

中级会员

精华贴数
0
技术积分
524
社区积分
0
注册时间
2004-2-20
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
发表于 2006-7-18 21:14:41 |显示全部楼层
db2 下有类似oracle下的lag函数吗?

使用道具 举报

注册会员

资深会员

精华贴数
2
技术积分
2122
社区积分
3314
注册时间
2003-11-21
论坛徽章:
6
会员2006贡献徽章
日期:2006-04-17 13:46:34参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:01会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442009新春纪念徽章
日期:2009-01-04 14:52:28ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
发表于 2007-5-27 17:47:56 |显示全部楼层
another method:
SQL> select * from
  2  (select rownum rn from dual connect by rownum <= (select max(id) from t))
  3  where rn not in
  4  (select id from t);

        RN
----------
         5
         7

使用道具 举报

注册会员

资深会员

精华贴数
0
技术积分
2818
社区积分
1
注册时间
2005-5-9
论坛徽章:
4
会员2007贡献徽章
日期:2007-09-26 18:42:10祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:20:51ITPUB9周年纪念徽章
日期:2010-10-08 09:31:21
发表于 2007-5-27 17:53:51 |显示全部楼层
最初由 www.wwf.co 发布
[B]another method:
SQL> select * from
  2  (select rownum rn from dual connect by rownum <= (select max(id) from t))
  3  where rn not in
  4  (select id from t);

        RN
----------
         5
         7 [/B]


这个思路可以.

使用道具 举报

注册会员

高级会员

精华贴数
0
技术积分
6722
社区积分
14
注册时间
2002-11-14
论坛徽章:
14
授权会员
日期:2005-10-30 17:05:33ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412011新春纪念徽章
日期:2011-02-18 11:43:352011新春纪念徽章
日期:2011-01-04 10:38:442010新春纪念徽章
日期:2010-03-01 11:05:00生肖徽章2007版:马
日期:2009-11-03 13:55:02祖国60周年纪念徽章
日期:2009-10-09 08:28:002009日食纪念
日期:2009-07-22 09:30:002009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:鼠
日期:2008-01-02 17:35:53ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44会员2007贡献徽章
日期:2007-09-26 18:42:10
发表于 2007-5-27 18:06:00 |显示全部楼层
Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0
Connected as SYS


SQL> create table t
  2  (a number) ;

Table created

SQL> insert into t values (1);

1 row inserted

SQL> insert into t values (2);

1 row inserted

SQL> insert into t values (3);

1 row inserted

SQL> insert into t values (4);

1 row inserted

SQL> insert into t values (6);

1 row inserted

SQL> insert into t values (8);

1 row inserted

SQL> insert into t values (9);

1 row inserted

SQL> insert into t values (10);

1 row inserted

SQL> commit ;

Commit complete

SQL>
SQL> select m.*
  2  from (
  3  select rownum rnum
  4  from all_objects
  5  where rownum<=(select max(a) from t)
  6    and rownum>=(select min(a) from t)
  7    ) m
  8  where m.rnum not in (select a from t)
  9  ;

      RNUM
----------
         5
         7

SQL>


我也凑一个热闹.

使用道具 举报

注册会员

一般会员

精华贴数
0
技术积分
308
社区积分
0
注册时间
2005-1-18
论坛徽章:
1
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
发表于 2007-5-29 01:20:11 |显示全部楼层
??
我用你们的方法:
SQL> select * from
2 (select rownum rn from dual connect by rownum <= (select max(id) from t))
3 where rn not in
4 (select id from t);

报错提示Connect By 子句中不能具有子查询
另外,我用:
SQL> select * from (select rownum rnum  from dual  where rownum<=(select max(dep
tno) from test)  and rownum>=(select min(deptno) from test) )m
这个方法返回的是空行???
为什么啊?

使用道具 举报

注册会员

初级会员

精华贴数
0
技术积分
506
社区积分
1
注册时间
2007-3-19
论坛徽章:
8
2008北京奥运纪念徽章:乒乓球
日期:2008-08-20 08:12:03生肖徽章2007版:鼠
日期:2008-11-22 12:34:37生肖徽章2007版:牛
日期:2009-02-05 15:35:10生肖徽章2007版:蛇
日期:2009-08-30 09:36:072010年世界杯参赛球队:墨西哥
日期:2010-06-30 15:14:362010年世界杯参赛球队:法国
日期:2010-08-16 09:49:242011新春纪念徽章
日期:2011-03-01 17:09:142010广州亚运会纪念徽章:网球
日期:2011-03-17 17:35:49
发表于 2008-6-19 15:11:40 |显示全部楼层
经过上面改造的:
select S from (select lag(serial_no,1) over(order by serial_no)+1 S, serial_no E from t6) where E-S<>0

使用道具 举报

版主

即使输掉了一切|也不要输掉微笑

精华贴数
9
技术积分
15948
社区积分
168557
注册时间
2007-9-10
论坛徽章:
37
ITPUB年度最佳版主
日期:2010-06-12 13:15:52ITPUB年度最佳版主
日期:2011-12-28 15:24:18ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳技术原创精华奖
日期:2012-03-13 17:12:05SQL数据库编程大师
日期:2011-04-13 12:09:01CBA常规赛纪念章
日期:2011-12-28 15:40:57SQL大赛参与纪念
日期:2011-04-13 12:08:17ITPUB伯乐
日期:2010-05-17 15:54:47NBA常规赛纪念章
日期:2011-04-19 12:51:44NBA季后赛纪念徽章
日期:2011-06-13 11:34:51NBA季后赛纪念徽章
日期:2011-06-13 11:35:37奥运纪念徽章
日期:2008-09-04 11:35:05
发表于 2008-6-19 16:03:44 |显示全部楼层
在网站上有这个的一个话题的


使用道具 举报

相关内容推荐
您需要登录后才可以回帖 登录 | 注册

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 邮箱 虎吧 老博客 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
回顶部