<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    waterye

    Oracle高級查詢

    使用Oracle特有的查詢語法, 可以達到事半功倍的效果

    1. 樹查詢
    create table tree (
        id 
    number(10not null primary key,
        name 
    varchar2(100not null,
        super 
    number(10not null                // 0 is root
    );
    -- 從子到父
    select * from tree start with id = ? connect by id = prior super 
    -- 從父到子
    select * from tree start with id = ? connect by prior id = suepr
    -- 整棵樹
    select * from tree start with super = 0 connect by prior id = suepr

    2. 分頁查詢
    select * from ( 
        
    select my_table.*, rownum  my_rownum from ( 
            
    select name, birthday from employee order by birthday
        ) my_table 
    where rownum < 120 
    where my_rownum >= 100;

    3. 累加查詢, 以scott.emp為例
    select empno, ename, sal, sum(sal) over(order by empno) result from emp;
     
         EMPNO ENAME             SAL     RESULT
    ---------- ---------- ---------- ----------
          7369 SMITH             800        800
          
    7499 ALLEN            1600       2400
          
    7521 WARD             1250       3650
          
    7566 JONES            2975       6625
          
    7654 MARTIN           1250       7875
          
    7698 BLAKE            2850      10725
          
    7782 CLARK            2450      13175
          
    7788 SCOTT            3000      16175
          
    7839 KING             5000      21175
          
    7844 TURNER           1500      22675
          
    7876 ADAMS            1100      23775
          
    7900 JAMES             950      24725
          
    7902 FORD             3000      27725
          
    7934 MILLER           1300      29025

    4. 高級group by
    select decode(grouping(deptno),1,'all deptno',deptno) deptno,
           decode(
    grouping(job),1,'all job',job) job,
           
    sum(sal) sal
    from emp 
    group by ROLLUP(deptno,job);
    DEPTNO                                   JOB              SAL
    ---------------------------------------- --------- ----------
    10                                       CLERK           1300
    10                                       MANAGER         2450
    10                                       PRESIDENT       5000
    10                                       all job         8750
    20                                       CLERK           1900
    20                                       ANALYST         6000
    20                                       MANAGER         2975
    20                                       all job        10875
    30                                       CLERK            950
    30                                       MANAGER         2850
    30                                       SALESMAN        5600
    30                                       all job         9400
    all deptno                               all job        29025

    5. use hint
    當多表連接很慢時,用ORDERED提示試試,也許會快很多
    SELECT /*+ ORDERED */* 
      
    FROM a, b, c, d 
     
    WHERE  

    posted on 2005-08-20 10:56 waterye 閱讀(4785) 評論(9)  編輯  收藏 所屬分類: oracle

    Feedback

    # re: Oracle高級查詢 2005-08-25 12:39 江南白衣@ITO

    嚴重懷疑3,4有沒有人敢用阿。  回復  更多評論   

    # re: Oracle高級查詢 2005-08-25 12:49 Water Ye

    3, 財務計算很有用啊

    當年進ITO就靠它啊  回復  更多評論   

    # re: Oracle高級查詢 2005-08-25 12:53 David@ITO

    要繼續推廣,來個實際項目說說:)  回復  更多評論   

    # re: Oracle高級查詢 2005-08-25 12:55 Water Ye@ITO

    3, Cayrix已在項目中應用  回復  更多評論   

    # re: Oracle高級查詢 2006-04-20 10:06 kelo

    我就用到了,謝謝  回復  更多評論   

    # re: Oracle高級查詢 2006-06-13 15:55 kelo

    樹查詢有用  回復  更多評論   

    # re: Oracle高級查詢 2007-11-05 20:47 Vale_Jones

    請教高手在SQL中語句為select * from table1 where id = @txtId
    轉換成Oracle 的語句應該是這樣的,我是剛學oracle很多不懂的,特前來向前輩們請教。  回復  更多評論   

    # re: Oracle高級查詢 2007-11-05 22:45 water ye

    查一下oracle pl/sql reference就可以了,今年做wap site的工作,沒有機會oracle, online db基本上都是mysql  回復  更多評論   

    # re: Oracle高級查詢 2007-11-06 09:15 Vale_Jones

    菜鳥求救高手:在Oracle里接受用房輸入信息為條件的查詢語句該怎樣寫?。≡赟QLserver為正常語句:select * from table1 where ID = @txtID
    txtID為用戶界面文本框。在Oracle中如何改寫才會不報錯呢?謝謝指教!  回復  更多評論   

    主站蜘蛛池模板: 中文字幕无码毛片免费看| 99精品视频在线视频免费观看| 日本免费精品一区二区三区| 久久影视综合亚洲| 最近2019免费中文字幕视频三| 亚洲欧美乱色情图片| 亚洲中文字幕无码中文字在线| **一级毛片免费完整视| 春暖花开亚洲性无区一区二区| 日本亚洲视频在线| 免费在线观看亚洲| 免费A级毛片无码视频| 苍井空亚洲精品AA片在线播放 | 青青青国产在线观看免费网站| 国产偷国产偷亚洲清高APP| 亚洲国产精品久久久天堂| 在线观看免费污视频| 免费人成网站在线观看不卡| 亚洲国产精品ⅴa在线观看| 亚洲av中文无码乱人伦在线r▽| 全免费a级毛片免费**视频| 91久久精品国产免费一区| 免费人成在线观看播放a| 亚洲制服在线观看| 亚洲产国偷V产偷V自拍色戒| 免费鲁丝片一级在线观看| 亚洲网站免费观看| 国产一级在线免费观看| 国产亚洲蜜芽精品久久| 2017亚洲男人天堂一| 日日夜夜精品免费视频| 99精品在线免费观看| 在线视频网址免费播放| 在线免费观看亚洲| 国产亚洲精久久久久久无码AV| 啦啦啦手机完整免费高清观看| 亚洲人成免费电影| 久久成人免费播放网站| 两个人看的www免费高清| 特级毛片aaaa免费观看| 色屁屁在线观看视频免费|