ITPUB??ì3
ITPUB论坛 » Oracle数据库管理 » 请教查询语句的写法?

标题: 请教查询语句的写法?
离线 hhd_1976
中级会员


精华贴数 0
个人空间 0
技术积分 524 (4120)
社区积分 0 (113244)
注册日期 2004-2-20
论坛徽章:1
授权会员     
      

发表于 2005-10-12 12:24 
请教查询语句的写法?

table T,列:serial_no
我想能够查询一下serial_no这个字段的不连续的值。
例如:
serial_no
1
2
3
4
6
8
9
10
我想一个sql语句查出来缺失的号码,
显示结果为:
5
7


只看该作者    顶部
离线 wwwyao
中级会员


精华贴数 0
个人空间 0
技术积分 266 (8079)
社区积分 56 (5273)
注册日期 2005-5-27
论坛徽章:1
授权会员     
      

发表于 2005-10-12 12:48 
再建一個表﹐給它連續的值﹗
兩個表一連接就實現了﹗


__________________
oooO.............(....)... Oooo...生活的激流...(.....(.....)...能推你前進,.._)..... )../....也能將.......... (_/......你oooO...............打沉!(....)... Oooo......(.....(.....)...也能帶.._)..... )../....你走向.......... (_/.....光明!
只看该作者    顶部
离线 seven_zhai
恋家的男人


精华贴数 0
个人空间 0
技术积分 1693 (1123)
社区积分 533 (1569)
注册日期 2004-6-4
论坛徽章:9
会员2006贡献徽章授权会员生肖徽章2007版:猪生肖徽章2007版:龙生肖徽章2007版:狗2008北京奥运纪念徽章:艺术体操
2008北京奥运纪念徽章:棒球2008北京奥运纪念徽章:帆船开发板块每日发贴之星   

发表于 2005-10-12 12:54 


QUOTE:
最初由 wwwyao 发布
再建一個表﹐給它連續的值﹗
兩個表一連接就實現了﹗


同意,只要找到找到在新表中的ID在旧表中没有的就可以了


__________________
昨夜西风凋碧树。独上高楼,望尽天涯路。衣带渐宽终不悔,为伊消得人憔悴。众里寻他千百度,蓦然回首,那人却在灯火阑珊处。MAIL:sevenanny_zhai@126.com MSN:seven.zhai@hotmail.com友情链接:My private spaces
只看该作者    顶部
离线 hhd_1976
中级会员


精华贴数 0
个人空间 0
技术积分 524 (4120)
社区积分 0 (113244)
注册日期 2004-2-20
论坛徽章:1
授权会员     
      

发表于 2005-10-12 12:57 
表很大,不能建立另外一个表!


只看该作者    顶部
离线 hhd_1976
中级会员


精华贴数 0
个人空间 0
技术积分 524 (4120)
社区积分 0 (113244)
注册日期 2004-2-20
论坛徽章:1
授权会员     
      

发表于 2005-10-12 13:03 
这个表里还有其他的字段,这个序号是依托与这些字段联合组成的主键,这个字段本身是能够重复的。而且这个表是一个流水表,数据量在千万级别,所以只想采用一个语句能够查询出来不连续的也就是丢失的纪录。谢谢


只看该作者    顶部
离线 rollingpig
版主


精华贴数 6
个人空间 103
技术积分 28536 (33)
社区积分 2160 (663)
注册日期 2001-10-18
论坛徽章:33
现任管理团队成员2006年度最佳技术回答ITPUB元老ITPUB北京2009年会纪念徽章ITPUB北京九华山庄2008年会纪念徽章生肖徽章2007版:龙
生肖徽章2007版:鼠生肖徽章2007版:狗生肖徽章2007版:牛生肖徽章2007版:鼠生肖徽章2007版:蛇IT宝贝

发表于 2005-10-12 13:10 
cursor吧!


__________________
欢迎访问乐恒的空间(3/15日更新靓照15张)
乐乐半岁了~~

提问的智慧 for Oracle[展开版]
提问的智慧Oracle版
0。尝试在google,论坛,metalink,online document里搜索。
1。写清楚你的执行log,报错信息,写清楚DB version , OS
2。Instance 方面的问题,请贴出alertlog
3。network的问题,贴出server的listener.ora , sqlnet.ora 并运行lsnrctl service, 贴出client的tnsnames.ora , sqlnet.ora ,并运行tnsping
4。DB总体性能问题,请于peak time做statspack,并上传statspack report。同时附上CPU/MEM配置,以及CPU IDLE/free menory的情况
5。SQL性能问题,列出当前SQL,以及PLAN。同时应提供表结构,index情况,Table的record数。CBO/RBO,table是否analyze等信息。
6。确保你的问题是Oracle相关。
欢迎访问乐恒的空间
只看该作者    顶部
离线 warehouse
自由职业



来自 大连
精华贴数 5
个人空间 0
技术积分 21001 (47)
社区积分 1030 (1088)
注册日期 2002-8-16
论坛徽章:57
现任管理团队成员Heart of PUB生肖徽章2007版:兔生肖徽章2007版:兔生肖徽章2007版:兔 
      

发表于 2005-10-12 13:17 


QUOTE:
最初由 hhd_1976 发布
表很大,不能建立另外一个表!

不用创建一个表,再增加一个字段怎么样?


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



来自 合肥
精华贴数 0
个人空间 0
技术积分 7295 (211)
社区积分 163 (3019)
注册日期 2003-9-18
论坛徽章:15
ITPUB元老会员2007贡献徽章会员2006贡献徽章授权会员生肖徽章2007版:鸡生肖徽章2007版:虎
生肖徽章2007版:鸡生肖徽章2007版:鸡生肖徽章2007版:鼠生肖徽章2007版:马2008北京奥运纪念徽章:柔道2008北京奥运纪念徽章:花样游泳

发表于 2005-10-12 13:20 


QUOTE:
最初由 warehouse 发布


不用创建一个表,再增加一个字段怎么样?


增加一个字段也是没有用的呀


只看该作者    顶部
离线 warehouse
自由职业



来自 大连
精华贴数 5
个人空间 0
技术积分 21001 (47)
社区积分 1030 (1088)
注册日期 2002-8-16
论坛徽章:57
现任管理团队成员Heart of PUB生肖徽章2007版:兔生肖徽章2007版:兔生肖徽章2007版:兔 
      

发表于 2005-10-12 13:26 


QUOTE:
最初由 mychary 发布

增加一个字段也是没有用的呀


呵呵,是啊,我也发现增加字段是不行的!


__________________
只看该作者    顶部
离线 rollingpig
版主


精华贴数 6
个人空间 103
技术积分 28536 (33)
社区积分 2160 (663)
注册日期 2001-10-18
论坛徽章:33
现任管理团队成员2006年度最佳技术回答ITPUB元老ITPUB北京2009年会纪念徽章ITPUB北京九华山庄2008年会纪念徽章生肖徽章2007版:龙
生肖徽章2007版:鼠生肖徽章2007版:狗生肖徽章2007版:牛生肖徽章2007版:鼠生肖徽章2007版:蛇IT宝贝

发表于 2005-10-12 13:35 
Cool!!!!!!!!
原来可以这么解的
PHP code:


SELECT   
/*+ordered */

         
T2.serial_no 1MIN (t3.serial_no) - 1

    FROM T T1
T T2T t3

   WHERE T1
.serial_no(+) = (T2.serial_no 1) AND T1.serial_no IS NULL

         
AND t3.serial_no T2.serial_no

GROUP BY T2
.serial_no









解决思路:
1。用not exists /not in  ,条件 : t1.serial_no = t2.serial_no + 1

2。参考http://www.itpub.net/406784.html , 将not exists /not in  改为outer join + is null 格式

3。加上 min 条件,确定上下限

有空再列出详细步骤


__________________
欢迎访问乐恒的空间(3/15日更新靓照15张)
乐乐半岁了~~

提问的智慧 for Oracle[展开版]
提问的智慧Oracle版
0。尝试在google,论坛,metalink,online document里搜索。
1。写清楚你的执行log,报错信息,写清楚DB version , OS
2。Instance 方面的问题,请贴出alertlog
3。network的问题,贴出server的listener.ora , sqlnet.ora 并运行lsnrctl service, 贴出client的tnsnames.ora , sqlnet.ora ,并运行tnsping
4。DB总体性能问题,请于peak time做statspack,并上传statspack report。同时附上CPU/MEM配置,以及CPU IDLE/free menory的情况
5。SQL性能问题,列出当前SQL,以及PLAN。同时应提供表结构,index情况,Table的record数。CBO/RBO,table是否analyze等信息。
6。确保你的问题是Oracle相关。
欢迎访问乐恒的空间
只看该作者    顶部
相关内容


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