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


您有 2 条公共消息
  • 来自: 公共消息 标题: 3-5月ITPUB数据库 ... 内容: ITPUB与3月和5月分别安排了Oracle 11g DBA和Oracle性能优化培训,以及 ...
  • 来自: 公共消息 标题: ITPUB邮箱已经恢复 内容: ITPUB邮箱用户请注意,邮箱现在已经恢复 web访问地址 http://emai ...

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


    精华贴数 0
    个人空间 0
    技术积分 524 (4441)
    社区积分 0 (120708)
    注册日期 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 (8633)
    社区积分 56 (5714)
    注册日期 2005-5-27
    论坛徽章:1
    授权会员     
          

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


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


    精华贴数 0
    个人空间 0
    技术积分 1695 (1231)
    社区积分 540 (1702)
    注册日期 2004-6-4
    论坛徽章:13
    会员2006贡献徽章授权会员2010新春纪念徽章2010年世界杯参赛球队:英格兰生肖徽章2007版:虎生肖徽章2007版:猴
    生肖徽章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 (4441)
    社区积分 0 (120708)
    注册日期 2004-2-20
    论坛徽章:1
    授权会员     
          

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


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


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

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


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


    精华贴数 6
    个人空间 103
    技术积分 30029 (35)
    社区积分 2425 (671)
    注册日期 2001-10-18
    论坛徽章:42
    现任管理团队成员2006年度最佳技术回答ITPUB北京九华山庄2008年会纪念徽章2010新春纪念徽章生肖徽章2007版:鼠IT宝贝
    生肖徽章2007版:猪     

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


    __________________

    ITPUB虎年超级宝贝投票,请投我的小孩一票,谢谢

    欢迎访问乐恒的空间
    9/12隆重推出周岁照

    提问的智慧 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
    技术积分 22621 (52)
    社区积分 1216 (1076)
    注册日期 2002-8-16
    论坛徽章:73
    现任管理团队成员Heart of PUB参与WIN7挑战赛纪念2010新春纪念徽章2010年世界杯参赛球队:英格兰2010年世界杯参赛球队:美国
    2010年世界杯参赛球队:墨西哥2010年世界杯参赛球队:法国2010新春纪念徽章生肖徽章2007版:兔生肖徽章2007版:虎生肖徽章2007版:虎

    发表于 2005-10-12 13:17 


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

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


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



    来自 安徽 六安
    精华贴数 0
    个人空间 0
    技术积分 7400 (227)
    社区积分 177 (3145)
    注册日期 2003-9-18
    论坛徽章:18
    ITPUB元老会员2007贡献徽章会员2006贡献徽章授权会员2010年世界杯参赛球队:希腊2010新春纪念徽章
    生肖徽章2007版:龙生肖徽章2007版:鸡生肖徽章2007版:虎生肖徽章2007版:鸡生肖徽章2007版:鸡生肖徽章2007版:鼠

    发表于 2005-10-12 13:20 


    QUOTE:
    最初由 warehouse 发布


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


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


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



    来自 大连
    精华贴数 5
    个人空间 0
    技术积分 22621 (52)
    社区积分 1216 (1076)
    注册日期 2002-8-16
    论坛徽章:73
    现任管理团队成员Heart of PUB参与WIN7挑战赛纪念2010新春纪念徽章2010年世界杯参赛球队:英格兰2010年世界杯参赛球队:美国
    2010年世界杯参赛球队:墨西哥2010年世界杯参赛球队:法国2010新春纪念徽章生肖徽章2007版:兔生肖徽章2007版:虎生肖徽章2007版:虎

    发表于 2005-10-12 13:26 


    QUOTE:
    最初由 mychary 发布

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


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


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


    精华贴数 6
    个人空间 103
    技术积分 30029 (35)
    社区积分 2425 (671)
    注册日期 2001-10-18
    论坛徽章:42
    现任管理团队成员2006年度最佳技术回答ITPUB北京九华山庄2008年会纪念徽章2010新春纪念徽章生肖徽章2007版:鼠IT宝贝
    生肖徽章2007版:猪     

    发表于 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 条件,确定上下限

    有空再列出详细步骤


    __________________

    ITPUB虎年超级宝贝投票,请投我的小孩一票,谢谢

    欢迎访问乐恒的空间
    9/12隆重推出周岁照

    提问的智慧 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号 联系我们